package com.kfm.day0907.ex;
import java.util.*;
/**
* 有一个集合保存扑克牌的花色(四种),另一个集合保存扑克牌点数(13个)。
* 创建一个新的集合保存所有的扑克牌(54张,包含 大小王)。
* 将扑克牌分为四份(3个玩家,1份底牌),排序后输出四份手牌
*
* List<String> flower; // 存花色
* List<String> points; // 存点数
*
* List<String> poker; // 扑克牌
*
* List<String> player1; // 玩家一
* List<String> player2; // 玩家二
* List<String> player3; // 玩家三
* List<String> bottom; // 底牌
* @author by FZB
* @date 2023/9/7
*/
public class Ex05 {
public static void main(String[] args) {
List<String> color = List.of("♥","♠","♦","♣");
List<String> points = List.of("A","2","3","4","5","6","7","8","9","10","J","Q","K");
List<String> poker = new ArrayList<>(List.of(" 🃏"," 🃏"));
//map集合用来给牌排序
Map<String,Integer> map = new HashMap<>();
map.put("3", 1);
map.put("4", 2);
map.put("5", 3);
map.put("6", 4);
map.put("7", 5);
map.put("8", 6);
map.put("9", 7);
map.put("10", 8);
map.put("J", 9);
map.put("Q", 10);
map.put("K", 11);
map.put("2", 12);
map.put("A", 13);
map.put("🃏",14);
map.put("🃏",15);
List<String> player1 = new ArrayList<>();
List<String> player2 = new ArrayList<>();
List<String> player3 = new ArrayList<>();
List<String> bottom = new ArrayList<>();
color.stream().forEach(c -> {
points.stream().forEach(p -> {
poker.add(c + " " +p);
});
});
//随机排列集合
Collections.shuffle(poker);
//跳过三张底牌
poker.stream().forEach(e -> {
if(player1.size() <= 16 ) player1.add(e);
else if(player2.size() <= 16) player2.add(e);
else if(player3.size() <= 16)player3.add(e);
else bottom.add(e);
});
//比较器,用来给卡牌排序
Comparator<String> stringComparator = new Comparator<String>() {
@Override
public int compare(String p1, String p2) {
return map.get(p1.split(" ")[1]) - map.get(p2.split(" ")[1]);
}
};
Collections.sort(player1,stringComparator);
Collections.sort(player2,stringComparator);
Collections.sort(player3,stringComparator);
Collections.sort(bottom,stringComparator);
System.out.println("玩家一:" + player1);
System.out.println("玩家一:" +player2);
System.out.println("玩家一:" +player3);
System.out.println("底牌:" +bottom);
}
}
输出为: