用javaArrayList集合编写扑克牌洗牌与发牌

2022-03-24 教育 107阅读
importjava.util.ArrayList;
importjava.util.Random;

publicclassPokerDemo{
ArrayListpoker=newArrayList();
Player[]players;
intn=4;
String[]name={"Wang","Zhang","Li","Yuan"};

publicPokerDemo(){
players=newPlayer[n];
for(inti=0;iplayers[i]=newPlayer(name[i]);
for(inti=0;i<4;i++)
for(intj=0;j<13;j++)
poker.add(newCard(i,j));
System.out.println("洗牌前:"+poker);
xipai();
System.out.println("洗牌后:"+poker);
fapai();
System.out.println("发牌后:");
for(inti=0;iSystem.out.println(players[i]);
}

publicvoidxipai(){
Randomr=newRandom();
ArrayListtmp=newArrayList();
while(!poker.isEmpty()){
intindex=r.nextInt(poker.size());
Cardcard=poker.get(index);
tmp.add(card);
poker.remove(index);
}
poker=newArrayList(tmp);
}

publicvoidfapai(){
intp=0;
while(!poker.isEmpty()){
Cardcard=poker.get(0);
players[p].add(card);
p=(p+1)%n;
poker.remove(0);
}
}

publicstaticvoidmain(String[]args){
newPokerDemo();
}
}

classCard{
intval,sty;
finalString[]value={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
finalString[]style={"黑桃","红心","梅花","方块"};
publicCard(ints,intv){
sty=s;
val=v;
}
publicStringtoString(){
returnstyle[sty]+""+value[val];
}
}

classPlayer{
ArrayListcards=newArrayList();
Stringname;
publicPlayer(Stringn){
name=n;
}

publicvoidadd(Cardcard){
cards.add(card);
}

publicStringtoString(){
returnname+":\t"+cards;
}

}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com