记录一下Java基础中集合的小案例 —–发扑克

三人斗地主,使用集合实现发牌洗牌


Poker类

public class Poker {
    String[] color = {"♦", "♥", "♣", "♠"};
    String[] numberPoker = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
    ArrayList<String> arrayList = new ArrayList();
    ArrayList<String> bottom = new ArrayList();
    ArrayList<Player> player = new ArrayList();

    public Poker(ArrayList<Player> player) {
        this.player = player;
        this.start();
        this.washPoker();
        this.sendPoker();
    }

    public void start() {
        for (int i = 0; i < color.length; i++) {
            for (int j = 0; j < numberPoker.length; j++) {
                arrayList.add(color[i] + numberPoker[j]);
            }
        }
        arrayList.add("King");
        arrayList.add("Queen");
    }

    public void washPoker() {
        Collections.shuffle(arrayList);
    }

    public void sendPoker() {
        for (int i = 0; i < arrayList.size(); i++) {
            if (i < 3) {
                bottom.add(arrayList.get(i));
            } else {
                player.get(i % 3).setPoker(arrayList.get(i));
            }
        }
    }

    public void watchPoker() {
        System.out.print("底牌:");
        System.out.println(bottom);
        for (int i = 0; i < player.size(); i++) {
            System.out.println(player.get(i));
        }
    }
}

Player类

public class Player {
    private String name;
    private String sex;

    ArrayList<String> poker = new ArrayList();

    public Player(String name, String sex) {
        this.name = name;
        this.sex = sex;
    }
    
    public void setPoker(String s) {
        poker.add(s);
    }

    @Override
    public String toString() {
        return "Player{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", arrayList=" + poker +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

测试类

public class Test {
    public static void main(String[] args) {
        Player player1 = new Player("科一","男");
        Player player2 = new Player("周星驰","男");
        Player player3 = new Player("周润发","男");
        ArrayList<Player> arrayList = new ArrayList<>();
        arrayList.add(player1);
        arrayList.add(player2);
        arrayList.add(player3);
        Poker poker = new Poker(arrayList);
        poker.watchPoker();
    }
}

输出结果

底牌:[8,J,8]
Player{name='科一', sex='男', arrayList=[10,9,Q,2,Q,5,4,3,J,5,8,9,10,6,J,4,8]}
Player{name='周星驰', sex='男', arrayList=[4,A,7,K,K,9,3,K, King,3, Queen,A,A,9,6,4,6]}
Player{name='周润发', sex='男', arrayList=[2,J,10,7,Q,7,K,10,A,2,5,5,6,3,Q,7,2]}
底牌:[9,8,4]
Player{name='科一', sex='男', arrayList=[J,K, Queen,6,Q,3,7,A,K,K,3,6,9,7,J,3,Q]}
Player{name='周星驰', sex='男', arrayList=[10,10,5,8,6,J,Q,K,4,7,Q,10,J,2,A,8,A]}
Player{name='周润发', sex='男', arrayList=[6,4,5,9,5,A,2,4,10,9,2,7,3,2, King,8,5]}