import java.util.ArrayList; import java.util.Collections; /* 按照斗地主的规则,完成洗牌,发牌的操作 使用54张牌,打乱顺序,3个玩家参与游戏,三人交替摸牌,每人17张,最后三张留底 1.准备牌,存储到集合中 特殊的,大王,小王 52张,定义一个数组或集合:存储 花色:♠ ♥ ♣ ♦ 再来一个集合 2,A,K...3 两个集合循环遍历 组合成 ♠2 ♠A ... 2.洗牌 Collections.shuffle() 把集合的顺序打乱 3.发牌 每人17张,3张底牌 索引(0-53) % 3 定义4个集合,3个人,1个底牌 i % 3 == 0 给第一个人发牌 i % 3 == 1 给第二个人发牌 i % 3 == 2 给第三个人发牌 i >= 51 时,不发了,三张留底 4.看牌 打印集合 */ public class DouDiZhu { public static void main(String[] args) { pai(); } private static void pai() { //准备牌 //list 总共的54张牌 ArrayList<String> list = new ArrayList<>(); //集合0:大王,小王,以及花色和数字组合的牌 list.add("大王"); list.add("小王"); System.out.println(list); ArrayList<String> list1 = new ArrayList<>(); //花色集合:♠ ♥ ♣ ♦; list1.add("♠");list1.add("♥");list1.add("♣");list1.add("♦"); System.out.println(list1); ArrayList<String> list2 = new ArrayList<>(); //数字集合:2,A,K...3 list2.add("A");list2.add("2");list2.add("3");list2.add("4");list2.add("5"); list2.add("6");list2.add("7");list2.add("8");list2.add("9");list2.add("10"); list2.add("J");list2.add("Q");list2.add("K"); System.out.println(list2); String zuhe ; //两个集合循环遍历 组合成 ♠2 ♠A ... for (int i = 0; i < list1.size(); i++) { for (int j = 0; j < list2.size(); j++) { zuhe = list1.get(i) + list2.get(j); list.add(zuhe); //此时的list里有了大王,小王和组合好的牌 //System.out.println(list); } } //洗牌 Collections.shuffle() Collections.shuffle(list); //对list里的54张牌进行洗牌 //发牌 ArrayList<String> player1 = new ArrayList<>(); //玩家1 ArrayList<String> player2 = new ArrayList<>(); //玩家2 ArrayList<String> player3 = new ArrayList<>(); //玩家3 ArrayList<String> dipai = new ArrayList<>(); //底牌 System.out.println(list.size()); //查看list里是不是放了54张牌 for (int i = 0; i < list.size(); i++) { String pai = list.get(i); if (i >= 51) { //i >= 51 时,取出3张底牌 dipai.add(pai); } else if (i % 3 == 0) { //i % 3 == 0 给第一个人发牌 player1.add(pai); } else if (i % 3 == 1) { //i % 3 == 1 给第二个人发牌 player2.add(pai); } else if (i % 3 == 2) { //i % 3 == 2 给第三个人发牌 player3.add(pai); } } //看牌 System.out.println("白艳军" + player1); System.out.println("王黎明" + player2); System.out.println("郭 勇" + player3); System.out.println("底牌" + dipai); } }