/*1.准备牌:54张牌存储到一个集合中
* 特殊派:大王,小王
* 其他52张牌:
* 定义一个集合,存储4种花色:♠,♥,♣,♦
* 定义一个集合,存储13个序号:2,A,K,Q,J,10,9,8,7,6,5,4,3
* 循环遍历嵌套2个集合,组装52张牌
* ♠2,♠A,♠k,♠Q...♠3;
* ♥2,♥A,♥K,♥Q...♥3;
* ...
* 2.洗牌
* 使用Collections的shuffle方法,打乱顺序
* 3.发牌
* 一人17张牌,剩余3张作为底牌,一人一张轮流发牌
* 集合的索引(0-53)%3
* 定义4个集合,存储3个玩家的牌和底牌
* 索引%2,有两个值(0,1)
* 索引%3,有三个值(0,1,2)
* 索引>=51,改底牌发牌
* 4.看牌
* 直接打印集合,遍历存储玩家和底牌的集合
*
*/
// 创建牌盒,存储所有牌
ArrayList<String> pokerBox=new ArrayList<>();
// 创建花色集合,添加花色
ArrayList<String> colors=new ArrayList<>();
colors.add("♠");
colors.add("♥");
colors.add("♣");
colors.add("♦");
// 创建数字集合,添加数字
ArrayList<String> numbers=new ArrayList<>();
for(int i=2;i<=10;i++) {
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
numbers.add("A");
// 遍历花色和数字集合,组装牌,放到牌盒里
for(String color:colors) {
for(String number:numbers) {
String card=color+number;
pokerBox.add(card);
}
}
pokerBox.add("大王");
pokerBox.add("小王");
// 洗牌
Collections.shuffle(pokerBox);
// 创建3个玩家集合和底牌集合
ArrayList<String> play1=new ArrayList<>();
ArrayList<String> play2=new ArrayList<>();
ArrayList<String> play3=new ArrayList<>();
ArrayList<String> dipai=new ArrayList<>();
// 发牌
for(int i=0;i<pokerBox.size();i++) {
String card=pokerBox.get(i);
if(i>=51) {
dipai.add(card);
}else {
if(i%3==0) {
play1.add(card);
}else if(i%3==1) {
play2.add(card);
}else {
play3.add(card);
}
}
}
// 查看3个玩家和底牌
System.out.println("玩家1"+play1);
System.out.println("玩家2"+play2);
System.out.println("玩家3"+play3);
System.out.println("底牌"+dipai);