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); }}