package 练习;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class 扑克用集合 {
public static void main(String[] args) {
String[] color= {"♣","♦","♠","♥"};
String[] poke= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
HashMap<Integer,String> hezi=new HashMap<>();
ArrayList<Integer> index=new ArrayList<>();
int num=0;
// 装盒
for(int j=0;j<poke.length;j++) {
for(int i=0;i<color.length;i++) {
String pai=color[i].concat(poke[j]);//concat 字符串拼接
hezi.put(num, pai);
index.add(num);
num++;
}
}
index.add(num);
hezi.put(num, "小鬼");
num++;
index.add(num);
hezi.put(num, "大鬼");
Collections.shuffle(index);//洗牌 = index打乱顺序
// 发牌: 用treeSet存,因为先只需要获得打乱的索引 再自动排序索引
TreeSet<Integer> play1=new TreeSet<>();
TreeSet<Integer> play2=new TreeSet<>();
TreeSet<Integer> play3=new TreeSet<>();
TreeSet<Integer> dipai=new TreeSet<>();
for(int i=0;i<index.size();i++) {
if(i>index.size()-1-3) {
dipai.add(index.get(i));
}else if(i%3==0) {
play1.add(index.get(i));
}else if(i%3==1) {
play2.add(index.get(i));
}else {
play3.add(index.get(i));
}
}
look("玩家1",play1,hezi);
look("玩家2",play2,hezi);
look("玩家3",play3,hezi);
look("底牌",dipai,hezi);
}
public static void look(String name,TreeSet<Integer> play,HashMap<Integer,String> hezi) {
System.out.print(name+"的牌是");
for(Integer i:play) {
System.out.print(hezi.get(i));
}
System.out.println();
}
}
测试结果: