packagecom.swift.poker;importjava.util.ArrayList;importjava.util.Collections;/*训练考核知识点:Collection接口的基本方法、
训练描述:
按照斗地主的规则,完成洗牌发牌的动作。
具体规则:
使用54张牌打乱顺序
三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
操作步骤描述:
?准备牌:
牌可以设计为一个ArrayList,每个字符串为一张牌。
每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。
牌由Collections类的shuffle方法进行随机排序。
?发牌:
将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
?看牌:
直接打印每个集合*/
public classPoker {public static voidmain(String[] args) {
ArrayList huase=new ArrayList();
huase.add("?");
huase.add("?");
huase.add("?");
huase.add("方片");
ArrayList shuzi=new ArrayList();
shuzi.add("A");
shuzi.add("2");
shuzi.add("3");
shuzi.add("4");
shuzi.add("5");
shuzi.add("6");
shuzi.add("7");
shuzi.add("8");
shuzi.add("9");
shuzi.add("10");
shuzi.add("J");
shuzi.add("Q");
shuzi.add("K");
ArrayList puke=new ArrayList();for(String hua:huase) {for(String shu:shuzi) {
puke.add(hua+shu);
}
}
puke.add("大王");
puke.add("小王");for(String str:puke) {
System.out.print(str+" ");
}//随机洗牌
Collections.shuffle(puke);
System.out.println();for(String str:puke) {
System.out.print(str+" ");
}//发牌
ArrayList player1=new ArrayList();
ArrayList player2=new ArrayList();
ArrayList player3=new ArrayList();
ArrayList dipai=new ArrayList();for(int i=0;i<54;i++) {if(i<3) {
dipai.add(puke.get(i));
}else if(i%3==0) {
player1.add(puke.get(i));
}else if(i%3==1) {
player2.add(puke.get(i));
}else if(i%3==2) {
player3.add(puke.get(i));
}
}//看牌
look(player1);
look(player2);
look(player3);
look(dipai);
}private static void look(ArrayListpai) {
System.out.println();for(String str:pai) {
System.out.print(str+" ");
}
System.out.println();
}
}