import java.util.*;
public class Demo {
public static void main(String[] args) {
//花色♠♣♥♦
List<String> colors = new ArrayList<>();
colors.add("♠");
colors.add("♣");
colors.add("♥");
colors.add("♦");
//数字345678910JQKA2
List<String> numbers = new ArrayList<>();
Collections.addAll(numbers,"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2");
//大小王: 大☻ 小☻
//定义Map,用数字来记录每一张牌
Map<Integer, String> map = new HashMap<>();
Integer squence = 0;//牌的顺序
//加入其它牌
for (String number : numbers) {
for (String color : colors) {
//一副牌54张,序号范围在[0,51]之间
if (squence <= 51) {
map.put(squence, number + "(" + color + ")");
squence++;
}
}
}
map.put(squence, "小☻");
squence++;
map.put(squence, "大☻");
squence++;
//使用0~53来记录每一张牌
List<Integer> cards = new ArrayList<>(map.keySet());
Collections.shuffle(cards);
System.out.println(cards);
//三个玩家和底牌
List<Integer> player1 = new ArrayList<Integer>();
List<Integer> player2 = new ArrayList<Integer>();
List<Integer> player3 = new ArrayList<Integer>();
List<Integer> end = new ArrayList<Integer>();
//发牌
for (int index = 0; index < cards.size(); index++) {
if (index < 51) {
int mod = index % 3;//index除以3的余数
int card = cards.get(index);
if (mod == 1) {
player1.add(card);
} else if (mod == 2) {
player2.add(card);
} else {
player3.add(card);
}
} else {
end.add(cards.get(index));
}
}
System.out.println(player1);
System.out.println(player2);
System.out.println(player3);
System.out.println(end);
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(end);
//各自手上的牌
List<String> player1Cards = new ArrayList<>();
List<String> player2Cards = new ArrayList<>();
List<String> player3Cards = new ArrayList<>();
List<String> endCards = new ArrayList<>();
for (Integer key : player1) {
player1Cards.add(map.get(key));
}
for (Integer key : player2) {
player2Cards.add(map.get(key));
}
for (Integer key : player3) {
player3Cards.add(map.get(key));
}
for (Integer key : end) {
endCards.add(map.get(key));
}
//看牌
System.out.println("玩家1:" + player1Cards);
System.out.println("玩家2:" + player2Cards);
System.out.println("玩家3:" + player3Cards);
System.out.println("底牌 :" + endCards);
}
}
模拟发牌
最新推荐文章于 2022-12-26 18:37:39 发布