package mydemo.day2.demo03;
import java.util.*;
public class Demo03CasePractice {
public static void main(String[] args) {
//用两个数组跟集合结合生张牌的一个大集合成
ArrayList list = new ArrayList<>();
String[] arr1 = {“♠”, “♥”, “♣”, “♦”};
String[] arr2 = {“2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “J”, “Q”, “K”, “A”};
for (int m = 0; m < arr1.length; m++) {
for (int n = 0; n < arr2.length; n++) {
list.add(arr1[m] + arr2[n]);
}
}
list.add(“Big🃏”);
list.add(“Small🃏”);
//调用洗牌方法,将54张牌洗好
//可以调用Collections的工具类shuffle
// Collections.shuffle(list);
//遍历洗好牌的集合
ArrayList shuffleList = shuffleMethod(list);
Iterator it = shuffleList.iterator();
System.out.println(“洗好的牌:”);
while (it.hasNext()) {
String st = it.next();
System.out.println(st);
}
System.out.println();
//调用摸牌的方法
method(shuffleList);
}
//洗牌的方法可以调用集合的工具类shuffle
//定义洗牌的方法
public static ArrayList shuffleMethod(ArrayList<String> list1) {
//创建一个新的集合用于存放洗好后的牌
ArrayList<String> receiveList = new ArrayList<>();
//获取集合长度,获得循环次数
int n = list1.size();
for (int i = 0; i < n; i++) {
//随机生成54张牌的索引编号,并将索引值对应的牌放进新的集合中
String str = list1.remove(new Random().nextInt(list1.size()));
receiveList.add(str);
}
return receiveList;
}
//定义一个摸牌的方法
public static void method(ArrayList<String> list) {
//定义四个集合分别存放三个人的牌和剩下的地主牌
ArrayList<String> listA = new ArrayList<>();
ArrayList<String> listB = new ArrayList<>();
ArrayList<String> listC = new ArrayList<>();
ArrayList<String> listLeft = new ArrayList<>();
//先将地主牌在集合中取出来并删除对应的牌,剩下51张牌摸牌
for (int i = 0; i < 3; i++) {
String str = list.remove(new Random().nextInt(list.size()));
listLeft.add(str);
}
//也可以先摸牌后确定地主牌
/*for (int i = 0; i < list.size(); i++) {
if (i < 51) {
if (i % 3 == 0) {
listA.add(list.get(i));
} else if (i % 3 == 1) {
listB.add(list.get(i));
} else if (i % 3 == 2) {
listC.add(list.get(i));
}
} else {
listLeft.add(list.get(i));
}
}*/
//三个人摸牌
for (int i = 0; i < list.size()/*此处的list.size()==51*/; i++) {
if (i % 3 == 0) {
listA.add(list.get(i));
} else if (i % 3 == 1) {
listB.add(list.get(i));
} else {
listC.add(list.get(i));
}
}
System.out.println("第一个人的牌:" + listA);
System.out.println("第二个人的牌:" + listB);
System.out.println("第三个人的牌:" + listC);
System.out.println("地主牌:" + listLeft);
}
}