案例:模拟斗地主,给三个玩家发牌,留下三张作为底牌,打印出三个玩家的牌和底牌。
public static void main(String[] args) {
ArrayList<String> poker = new ArrayList<String>();
// 花色
String[] huase = { "♣", "♦", "♥", "♠" };
// 大小
String[] shuzi = { "K", "Q", "J", "A", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
// 添加每张牌
for (int i = 0; i < huase.length; i++) {
// 获取每一个花色
for (int j = 0; j < shuzi.length; j++) {
// 获取每一个数
poker.add(huase[i] + shuzi[j]);
}
}
poker.add("b joker");// 大王
poker.add("l joker");// 小王
// System.out.println(poker.size());
// 调用shuffle方法,模拟洗牌
Collections.shuffle(poker);
// System.out.println(poker);
ArrayList<String> 玩家1 = new ArrayList<String>();
ArrayList<String> 玩家2 = new ArrayList<String>();
ArrayList<String> 玩家3 = new ArrayList<String>();
ArrayList<String> 底牌 = new ArrayList<String>();
for (int i = 0; i < 51; i++) {
if (i % 3 == 0) {
玩家1.add(poker.remove(0));
}
if (i % 3 == 1) {
玩家2.add(poker.remove(0));
}
if (i % 3 == 2) {
玩家3.add(poker.remove(0));
}
}
// 剩下三张就是底牌
底牌 = poker;
// 打印玩家的牌
System.out.println("玩家1" + 玩家1);
System.out.println("玩家2" + 玩家2);
System.out.println("玩家3" + 玩家3);
System.out.println("底牌" + 底牌);
}
打印效果:
玩家1[♠10, ♠8, ♥2, ♣5, ♦2, ♦3, ♠2, ♠Q, ♥10, ♣J, ♦7, ♦4, ♥J, ♦K, ♣9, ♥3, ♦5]
玩家2[b joker, ♦Q, ♣A, ♣10, ♠7, ♦J, l joker, ♥6, ♠K, ♠6, ♠9, ♣3, ♣2, ♥4, ♠5, ♦6, ♠J]
玩家3[♥A, ♠A, ♥9, ♥K, ♣K, ♦9, ♥7, ♣8, ♦A, ♦8, ♠4, ♥Q, ♥5, ♣7, ♥8, ♣Q, ♠3]
底牌[♣6, ♦10, ♣4]