WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术程序开发牌类游戏的发牌

牌类游戏的发牌
作者:不详  来源:本站整理  发布时间:2005-11-24 17:31:46
这是以前写的一个斗地主游戏的发牌模型,补上一些注释,希望对大家有帮助。调试通过。



/*大宝-斗地主
* 程序流程:
* 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]+" "

[1] [2]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码