模拟斗地主发牌

/*
    按照斗地主的规则,完成洗牌发牌的动作。
    要求完成以下功能:
    准备牌:组装54张扑克牌
    洗牌:54张牌顺序打乱
    发牌:三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
    看牌:查看三人各自手中的牌(按照牌的大小排序)、底牌

    规则:手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

 */

/**
 * @Descriptionn:test
 * @Create by:依然
 * @Date:2021/9/24 10:27
 */
public class DouDiZhu {
    public static void main(String[] args) {
        //键为序号,值为牌面
        HashMap hashMap = new HashMap<>();
        String[] colors = {"♠", "♥", "♣", "♦"};
        String[] pai = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
        int cout = 2;
        for (String s : pai) {
            for (String color : colors) {
                // System.out.println("配对为:"+cout+":"+(s+color));
                hashMap.put(cout, (s + color));
                cout++;
            }
        }
        //System.out.println(hashMap);
        hashMap.put(0, "大王");
        hashMap.put(1, "小王");

        //洗牌
        //获取hashMap中的序号
        Set set = hashMap.keySet();
        //建立集合
        List list = new ArrayList<>();
        //将序号添加到集合中
        list.addAll(set);
        Collections.shuffle(list);
        //打乱后的序号
        //System.out.println(list);

        //发牌

        // 发牌
        TreeSet 赌神 = new TreeSet<>();
        TreeSet 赌圣 = new TreeSet<>();
        TreeSet 赌侠 = new TreeSet<>();
        TreeSet 底牌 = new TreeSet<>();
        //list储存牌的编号
        //留三张底牌
        for (int i = 0; i < list.size() - 3; i++) {
            if (i % 3 == 0) {
                //public E get(int index):返回集合中指定位置的元素
                赌神.add(list.get(i));
            } else if (i % 3 == 1) {
                赌圣.add(list.get(i));
            } else {
                赌侠.add(list.get(i));
            }
        }

        底牌.add(list.get(51));
        底牌.add(list.get(52));
        底牌.add(list.get(53));
        //测试牌
        // System.out.println("赌神:" + 赌神);
        // System.out.println("赌圣:" + 赌圣);
        // System.out.println("赌侠:" + 赌侠);
        // System.out.println("底牌:" + 底牌);

        //看牌
        System.out.print("赌神:");
        for (Integer integer : 赌神) {
            String s = hashMap.get(integer);
            System.out.print(s + " ");
        }
        System.out.println();
        System.out.print("赌圣:");
        for (Integer integer : 赌圣) {
            String s = hashMap.get(integer);
            System.out.print(s + " ");
        }
        System.out.println();
        System.out.print("赌侠:");
        for (Integer integer : 赌侠) {
            String s = hashMap.get(integer);
            System.out.print(s + " ");
        }
        System.out.println();
        System.out.print("底牌:");
        for (Integer integer : 底牌) {
            String s = hashMap.get(integer);
            System.out.print(s + " ");
        }

    }
}

你可能感兴趣的:(java)