//1.准备牌,没有自然顺序, 我们可使用查表法 //1.准备规则 ArrayList<String> regulation = new ArrayList<>(); regulation.add("O(∩_∩)O哈哈~"); regulation.add("(#^.^#)"); String[] colors = {"♠","♥","♣","♦"}; String [] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; for (String number : numbers) { for (String color : colors) { regulation.add(color+number); } } //2.洗牌, 不雅洗规则, 要查, 可以准备 这些牌的索引 ArrayList<Integer> indexs = new ArrayList<>(); for (int i = 0; i < 54; i++) { indexs.add(i); } //System.out.println(indexs); //3.洗牌, 打乱索引 Collections.shuffle(indexs); //System.out.println(indexs); //4.发牌 ArrayList<Integer> 林 = new ArrayList<>(); ArrayList<Integer> 王 = new ArrayList<>(); ArrayList<Integer> 梅 = new ArrayList<>(); ArrayList<Integer> 底牌 = new ArrayList<>(); for (int i = 0; i < indexs.size(); i++) { Integer index = indexs.get(i); if (i >= indexs.size() - 3){ 底牌.add(index); }else{ if(i % 3 ==0){ 梅.add(index); }else if(i % 3 == 1){ 林.add(index); }else{ 王.add(index); } } } System.out.println(梅); System.out.println(林); System.out.println(王); System.out.println(底牌); //对玩家手中的索引进行排序 Collections.sort(梅); Collections.sort(林); Collections.sort(王); Collections.sort(底牌); //根据索引取出真正的排 showCard("梅",梅,regulation); showCard("林",林,regulation); showCard("王",王regulation); showCard("底牌",底牌,regulation); } public static void showCard(String name, List<Integer> player, List<String> regulation){ System.out.println("这是" +name+"的牌:"); for (Integer index : player) { String card = regulation.get(index); System.out.print(card+" "); } System.out.println(); }
实现斗地主牌的大小顺序,实现分发牌的顺序,每个人手中的牌按照大小排序
最新推荐文章于 2022-09-12 06:50:06 发布