package MyProject.DouDiZhu;
import java.util.*;
public class MoNiDouDizhuB {
public static void main(String[] args) {
//创建一个牌盒
HashMap<Integer, String> pukerHsMap = new HashMap<Integer, String>();
//向牌盒里装牌
/*
♥2 ♠3 ♣4 ♦5
花色:♥ ♠ ♣ ♦
牌面:3 4 5 6 7 8 9 10 J Q K A 2
*/
//定义牌色数组:
String[] pukerColor = {"♥", "♠", "♣", "♦"};
//定义牌面值:
String[] pukerSize = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
//生成扑克牌,并把牌的对应该关系存到ArrayList用于洗牌,同时装进牌盒
ArrayList<Integer> pukerTemp = new ArrayList<>();
int ii = 0;
for (String size : pukerSize) { //这时先遍历牌值,在遍历花色,才是后面排序的前提
for (String color : pukerColor) {
String puker = color + size;
pukerHsMap.put(ii, puker);
pukerTemp.add(ii);
ii++;
}
}
pukerHsMap.put(ii, "小王");
pukerTemp.add(ii);
ii++;
pukerHsMap.put(ii, "大王");
pukerTemp.add(ii);
//装牌进盒
//洗牌
Collections.shuffle(pukerTemp); //对索引取随机排列,
/* for (Integer index : pukerTemp) { // 利用随机后的排列,去map中找牌
String pukerCode = pukerHsMap.get(index);
System.out.print(pukerCode);
}*/
//定义四个玩家,采用TreeSet(),他能对牌进行排序,拿到的依然是牌的索引
TreeSet<Integer> playerA = new TreeSet<>();
TreeSet<Integer> playerB = new TreeSet<>();
TreeSet<Integer> playerC = new TreeSet<>();
TreeSet<Integer> playerD = new TreeSet<>();
//发牌
for (int i = 0; i < pukerTemp.size(); i++) {
if (i >= pukerTemp.size() - 3) {
Integer keyD = pukerTemp.get(i);
playerD.add(keyD);
} else if (i % 3 == 0) {
Integer pukerA = pukerTemp.get(i);
playerA.add(pukerA);
} else if (i % 3 == 1) {
Integer pukerB = pukerTemp.get(i);
playerB.add(pukerB);
} else if (i % 3 == 2) {
Integer pukerC = pukerTemp.get(i);
playerC.add(pukerC);
}
}
//看牌:
lookPuker("张某某", playerA, pukerHsMap);
lookPuker("李某某", playerB, pukerHsMap);
lookPuker("王某某", playerC, pukerHsMap);
lookPuker("底 牌", playerD, pukerHsMap);
}
public static void lookPuker(String name, TreeSet<Integer> treeSet, HashMap<Integer, String> hs) {
System.out.print(name + "的牌是:");
for (Integer ss : treeSet) {
String sss = hs.get(ss);
System.out.print(sss + " ");
}
System.out.println();
}
}
张某某的牌是:♥3 ♣3 ♣4 ♦4 ♣6 ♦7 ♠9 ♦9 ♥10 ♠10 ♥K ♠K ♠A ♥2 ♠2 ♦2 小王
李某某的牌是:♥4 ♠5 ♣5 ♦6 ♠7 ♣7 ♠8 ♣8 ♦8 ♣9 ♣10 ♥J ♦J ♦Q ♣K ♥A ♦A
王某某的牌是:♠3 ♠4 ♥5 ♦5 ♥6 ♠6 ♥7 ♥8 ♥9 ♦10 ♠J ♣J ♠Q ♣Q ♣A ♣2 大王
底 牌的牌是:♦3 ♥Q ♦K