首页 新闻 会员 周边

C#纸牌游戏

0
悬赏园豆:200 [已关闭问题] 关闭于 2013-06-26 10:45

用C#编辑的纸牌游戏,要具体步骤说明。自己添加纸牌图片,不要用cards.dll,火急

C#
雨哥的主页 雨哥 | 初学一级 | 园豆:7
提问于:2013-04-02 16:19
< >
分享
所有回答(2)
0

自己绘制

dotNET界面-大白 | 园豆:234 (菜鸟二级) | 2013-04-03 11:41

能否给我个完整带步骤的参考

支持(0) 反对(0) 雨哥 | 园豆:7 (初学一级) | 2013-04-03 12:18
0
给个斗地主 纸牌 你参考下:
* 程序流程:
* 1、首先定义需要使用的数组、变量等
* 2、用Random.nextInt方法生成随机数,并通过循环判断语句将说得的值进行比较,不重复的记入pai[]
* 3、进行分牌,分配到play_a、play_b、play_c三位玩家手中
*
* 关于牌的大小安排
3 4 5 6 7 8 9 10 J Q K A 2 小王 大王
黑 4 8 12 16 20 24 28 32 36 40 44 48 52 53 54
红 3 7 11 15 19 23 27 31 35 39 43 47 51
梅 2 6 10 14 18 22 26 30 34 38 42 46 50
方 1 5 9 13 17 21 25 29 33 37 41 45 49
*
* 分配原则为:因为已经随机抽取牌,所以直接将pai[]中的
* 0-16分给play_a
* 17-33分给play_b
* 34-50分给play_c
* 51-53为底牌
*
* 4、对每位玩家手上的牌进行大小排序,使用Arrays.sort()可以很方便的对数组进行排序
* 5、进行花色定义,这是一个复杂的手工过程,但是这样可以方便以后操作,然后将花色牌打印出来
* 6、玩家a当地主,将底牌给玩家a,然后将地主的牌打印
* 待续。。。
*
*
* */

import java.util.Random;
import java.util.Arrays;

public class ddz {
public static void main(String args[]){
int pai[] = new int[54]; //用于保存取出来的54个随机数

int play_a[] = new int[17];
int play_b[] = new int[17];
int play_c[] = new int[17]; //存放a,b,c三个玩家的牌

int k=0,m,n=0,paishu=0,qu = 0; // paishu用来表示pai[]数组里面的数的位置

//qu表示随机数每次取出来的数值,k,m,n表示自由变量,根据需要设置的;

Random rnd;
rnd=new Random(System.currentTimeMillis()); //随机数xuan

//随机生成54张不重复的牌

while(paishu<54) //while语句的作用,机选出54个数据,按选出来的顺序依次放在pai[]中

{
qu = Math.abs(rnd.nextInt())%54+1;

for(m = 0; m<=paishu ;m++) //判断机选出来的数值qu是否已经在pai[]中

{
if(pai[m]==qu)
{
n=0;
break;
}
else n= 1;
}
if(n==1) //如果机选出来的数值不在pai[]中,则把qu的值加入到pai[]里面相应的位置

{
pai[paishu]=qu;
paishu++;
}
}

//第二部分,将初始牌分配给每个人

/*关于牌的大小安排
3 4 5 6 7 8 9 10 J Q K A 2 小王 大王
黑 4 8 12 16 20 24 28 32 36 40 44 48 52 53 54
红 3 7 11 15 19 23 27 31 35 39 43 47 51
梅 2 6 10 14 18 22 26 30 34 38 42 46 50
方 1 5 9 13 17 21 25 29 33 37 41 45 49
*/

//把随机牌分给3位玩家

for(k=0,m=0;m<17;k++,m++)
{
play_a[k] = pai[m];
}

for(k=0,m=17;m<34;k++,m++)
{
play_b[k] = pai[m];
}

for(k=0,m=34;m<51;k++,m++)
{
play_c[k] = pai[m];
}

//直接将3人的牌排序

Arrays.sort(play_a);
Arrays.sort(play_b);
Arrays.sort(play_c);

//将牌和花色定义

String flowers[] = new String[55];

flowers[1]= "方"+"3";
flowers[2]= "梅"+"3";
flowers[3]= "红"+"3";
flowers[4]= "黑"+"3";

flowers[5]= "方"+"4";
flowers[6]= "梅"+"4";
flowers[7]= "红"+"4";
flowers[8]= "黑"+"4";

flowers[9]= "方"+"5";
flowers[10]= "梅"+"5";
flowers[11]= "红"+"5";
flowers[12]= "黑"+"5";

flowers[13]= "方"+"6";
flowers[14]= "梅"+"6";
flowers[15]= "红"+"6";
flowers[16]= "黑"+"6";

flowers[17]= "方"+"7";
flowers[18]= "梅"+"7";
flowers[19]= "红"+"7";
flowers[20]= "黑"+"7";

flowers[21]= "方"+"8";
flowers[22]= "梅"+"8";
flowers[23]= "红"+"8";
flowers[24]= "黑"+"8";

flowers[25]= "方"+"9";
flowers[26]= "梅"+"9";
flowers[27]= "红"+"9";
flowers[28]= "黑"+"9";

flowers[29]= "方"+"10";
flowers[30]= "梅"+"10";
flowers[31]= "红"+"10";
flowers[32]= "黑"+"10";

flowers[33]= "方"+"J";
flowers[34]= "梅"+"J";
flowers[35]= "红"+"J";
flowers[36]= "黑"+"J";

flowers[37]= "方"+"Q";
flowers[38]= "梅"+"Q";
flowers[39]= "红"+"Q";
flowers[40]= "黑"+"Q";

flowers[41]= "方"+"K";
flowers[42]= "梅"+"K";
flowers[43]= "红"+"K";
flowers[44]= "黑"+"K";

flowers[45]= "方"+"A";
flowers[46]= "梅"+"A";
flowers[47]= "红"+"A";
flowers[48]= "黑"+"A";

flowers[49]= "方"+"2";
flowers[50]= "梅"+"2";
flowers[51]= "红"+"2";
flowers[52]= "黑"+"2";

flowers[53]= "小王";
flowers[54]= "大王";

flowers[0]= "???";

//将原来的数字牌换成花色牌

String[] play_apai= new String[17];
String[] play_bpai= new String[17];
String[] play_cpai= new String[17];

for(k=0;k<17;k++){
play_apai[k]=flowers[play_a[k]];
play_bpai[k]=flowers[play_b[k]];
play_cpai[k]=flowers[play_c[k]];
}

//将花色牌打印出来

System.out.print(" \n =打印出已经排序且转换牌面的牌=");
System.out.print(" \n 玩家a的牌: ");
for(k=0;k<17;k++) System.out.print( play_apai[k]+" " );
System.out.print(" \n 玩家b的牌: ");
for(k=0;k<17;k++) System.out.print( play_bpai[k]+" " );
System.out.print(" \n 玩家c的牌: ");
for(k=0;k<17;k++) System.out.print( play_cpai[k]+" " );

System.out.print(" \n 打印出底牌: ");
for(k=51;k<54;k++)
System.out.print(flowers[pai[k]]+" ");

System.out.println(" \n \n 玩家a始终为当前玩家,玩家b、c为AI控制,玩家a如果当地主,牌为: ");

//定义地主的牌

String dizhu[]=new String[20];
int dizhushu[]=new int[20];
for(k=0;k<17;k++)
dizhushu[k]=play_a[k];
dizhushu[17]=pai[51];
dizhushu[18]=pai[52];
dizhushu[19]=pai[53];

//排序地主的牌

Arrays.sort(dizhushu);

//转换牌面

for(k=0;k<20;k++)
dizhu[k]=flowers[dizhushu[k]];

//打印地主的牌

System.out.print(" \n 地主的牌: " );
for(k=0;k<20;k++)
System.out.print(dizhu[k]+" ");

}

}

//把随机牌分给3位玩家

for(k=0,m=0;m<17;k++,m++)
{
play_a[k] = pai[m];
}

for(k=0,m=17;m<34;k++,m++)
{
play_b[k] = pai[m];
}

for(k=0,m=34;m<51;k++,m++)
{
play_c[k] = pai[m];
}
这一段代码改成这样会不会好点:

for(k=0;k<17;k++)

{ play_a[k]=pai[k];

play_b[k]=pai[k+17];

play_c[k]=pai[k+34];

}
月下花弄影 | 园豆:312 (菜鸟二级) | 2013-04-03 13:54

兄弟能否把整个项目发给我,我没做过这些小游戏。

支持(0) 反对(0) 雨哥 | 园豆:7 (初学一级) | 2013-04-03 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册