记录一下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]}