Juneava
2016-10-24 14:36
System.out.println("******开始发牌******");
int[] s=new int[4];
int i=0;
int index;
while(i<4){
index=(int)(Math.random()*52);
for(int j=0;j<i;j++){
if(s[j]==index)
{
break;
}
else{
s[i]=index;i++;
}
}
}
System.out.println("玩家"+player1.name+"拿牌");
handCard1.add(cardToGet.get(s[0]));
System.out.println("玩家"+player2.name+"拿牌");
handCard2.add(cardToGet.get(s[1]));
System.out.println("玩家"+player1.name+"拿牌");
handCard1.add(cardToGet.get(s[2]));
System.out.println("玩家"+player2.name+"拿牌");
handCard2.add(cardToGet.get(s[3]));
System.out.println("******发牌完毕******");上面的添加玩家是可行的,就没放上来。我是这么想的:牌组是名为cardToGet的List,手牌分别是名为handCard1和handCard2的List,在一个数组里随机无序地放上4个1-52之间的整数,while里面嵌套一个for循环是为了使数组里面的数不重复,给玩家发牌直接把数组里面的数作为索引获取cardToGet里的元素,这样就实现了给两名玩家没人随机发两张牌,但是运行到开始发牌就没下文了。。。求指教啊!
int[] s = new int[4];
int i =1;
int index;
boolean flag ;
while(i<=4){
flag = true;
index = (int)(Math.random()*52);
for(int j =0;j<i;j++){
if(s[j] == index){
flag = false;
break;
}
}
if(flag){
s[i-1] = index;
i++;
}
}
你的代码无法跳进while里面的for循环
Java入门第三季
409771 学习 · 4546 问题
相似问题