1. package Test18_Demo.Demo01;/*
    2. @create 2020--12--08--9:10
    3. */
    4. import java.util.ArrayList;
    5. import java.util.Collections;
    6. public class CardDemo {
    7. public static void main(String[] args) {
    8. //准备牌
    9. //集合中记录的是一副牌 - 54张
    10. ArrayList<String> poker = new ArrayList<>();
    11. //定义花色 - 定义一个集合用于存放花色
    12. ArrayList<String> colors = new ArrayList<>();
    13. colors.add("♣");
    14. colors.add("♦");
    15. colors.add("♠");
    16. colors.add("♥");
    17. //定义一个集合用于存放数字
    18. ArrayList<String> numbers = new ArrayList<>();
    19. for (int i = 2; i <= 10; i++) {
    20. numbers.add(i + "");
    21. }
    22. numbers.add("J");
    23. numbers.add("Q");
    24. numbers.add("K");
    25. numbers.add("A");
    26. //嵌套迭代的方式完成每张牌的组装 - 放了52张牌
    27. //利用增强for循环
    28. for (String thisColor: colors
    29. ) {
    30. for (String thisNumber: numbers
    31. ) {
    32. String thisCard = thisColor + thisNumber;
    33. poker.add(thisCard);
    34. }
    35. }
    36. //补充两张大小王
    37. poker.add("大😊");
    38. poker.add("小😀");
    39. //测试
    40. //System.out.println(poker);
    41. //洗牌 - 直接调用方法
    42. //Collections是一个集合工具类,提供了很多的集合中处理的静态方法
    43. Collections.shuffle(poker);
    44. //测试
    45. System.out.println(poker);
    46. //发牌 - 将每个人以及底牌设置为一个集合,最后的三张底牌直接存放到底牌中,剩余牌通过对3进行取余依次发牌
    47. ArrayList<String> player1 = new ArrayList<>();
    48. ArrayList<String> player2 = new ArrayList<>();
    49. ArrayList<String> player3 = new ArrayList<>();
    50. ArrayList<String> dipai = new ArrayList<>();
    51. //使用普通for循环,通过下标进行处理
    52. //除了最后的三张牌,其他的都发给玩家
    53. for (int i = 0; i < poker.size() - 3; i++) {
    54. //获取当前这张牌
    55. String thisCard = poker.get(i);
    56. if (i % 3 == 0) {
    57. player1.add(thisCard);
    58. } else if (i % 3 == 1) {
    59. player2.add(thisCard);
    60. } else {
    61. player3.add(thisCard);
    62. }
    63. }
    64. for (int i = poker.size()-3; i <poker.size() ; i++) {
    65. String thisCard = poker.get(i);
    66. dipai.add(thisCard);
    67. }
    68. System.out.println(player1);
    69. System.out.println(player2);
    70. System.out.println(player3);
    71. System.out.println(dipai);
    72. }
    73. }