package Test18_Demo.Demo01;/*
@create 2020--12--08--9:10
*/
import java.util.ArrayList;
import java.util.Collections;
public class CardDemo {
public static void main(String[] args) {
//准备牌
//集合中记录的是一副牌 - 54张
ArrayList<String> poker = 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");
//嵌套迭代的方式完成每张牌的组装 - 放了52张牌
//利用增强for循环
for (String thisColor: colors
) {
for (String thisNumber: numbers
) {
String thisCard = thisColor + thisNumber;
poker.add(thisCard);
}
}
//补充两张大小王
poker.add("大😊");
poker.add("小😀");
//测试
//System.out.println(poker);
//洗牌 - 直接调用方法
//Collections是一个集合工具类,提供了很多的集合中处理的静态方法
Collections.shuffle(poker);
//测试
System.out.println(poker);
//发牌 - 将每个人以及底牌设置为一个集合,最后的三张底牌直接存放到底牌中,剩余牌通过对3进行取余依次发牌
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
//使用普通for循环,通过下标进行处理
//除了最后的三张牌,其他的都发给玩家
for (int i = 0; i < poker.size() - 3; i++) {
//获取当前这张牌
String thisCard = poker.get(i);
if (i % 3 == 0) {
player1.add(thisCard);
} else if (i % 3 == 1) {
player2.add(thisCard);
} else {
player3.add(thisCard);
}
}
for (int i = poker.size()-3; i <poker.size() ; i++) {
String thisCard = poker.get(i);
dipai.add(thisCard);
}
System.out.println(player1);
System.out.println(player2);
System.out.println(player3);
System.out.println(dipai);
}
}