package com.oracle.dome04;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Set;
public class Playpoker {
public static void main(String[] args) {
//创建集合 牌盒(Map创建,因为后面需要索引排序) 花色 数字
LinkedHashMap<Integer, String> boxMap=new LinkedHashMap<>();
ArrayList<String> color=new ArrayList<>();
ArrayList<String> number=new ArrayList<>();
//添加数字 和 花色 到集合
Collections.addAll(number, "2","A","K","Q","J");
for(int i=10;i>=3;i--){
number.add(i+"");
}
Collections.addAll(color, "♦","♣","♥","♠");
//组合牌型 并且把大小王添加进去
boxMap.put(0, "大王");
boxMap.put(1, "小王");
int cound=2;
//数字在外层循环 因为后期需要给每个数排序,所以他们的索引不能乱
for(String n:number){
for(String c:color){
//牌型组合出来
String card=c + n;
//把牌存到盒子中
boxMap.put(cound++, card);
}
}
System.out.println(boxMap);
//创建三个玩家编号和一个底牌编号 存储牌的编号
ArrayList<Integer> plOn1=new ArrayList<>();
ArrayList<Integer> plOn2=new ArrayList<>();
ArrayList<Integer> plOn3=new ArrayList<>();
ArrayList<Integer> diOn=new ArrayList<>();
//获取所有键
Set<Integer> keySet = boxMap.keySet();
//把键转成List集合
ArrayList<Integer> arr=new ArrayList<>();
arr.addAll(keySet);
// System.out.println(arr);
Collections.shuffle(arr);
//把集合的键发给玩家和底牌
for(int i=0;i<arr.size();i++){
//后三张底牌
if(i>=51){
diOn.add(arr.get(i));
}else if(i%3==0){
plOn1.add(arr.get(i));
}else if(i%3==1){
plOn2.add(arr.get(i));
}else{
plOn3.add(arr.get(i));
}
}
//排序玩家所得的牌
Collections.sort(plOn1);
Collections.sort(plOn2);
Collections.sort(plOn3);
Collections.sort(diOn);
//获取每个玩家得到的键的键值
//创建玩家
ArrayList<String> p1=new ArrayList<>();
ArrayList<String> p2=new ArrayList<>();
ArrayList<String> p3=new ArrayList<>();
ArrayList<String> dipai=new ArrayList<>();
//转型获得牌型
for(Integer i1:plOn1){
String string = boxMap.get(i1);
p1.add(string);
}
for(Integer i2:plOn2){
String string = boxMap.get(i2);
p2.add(string);
}
for(Integer i3:plOn3){
String string = boxMap.get(i3);
p3.add(string);
}
for(Integer i4:diOn){
String string = boxMap.get(i4);
dipai.add(string);
}
//查看牌型
System.out.println("张飞的牌型:"+p1);
System.out.println("刘备的牌型:"+p2);
System.out.println("关羽的牌型:"+p3);
System.out.println("底牌的牌型:"+dipai);
}
}