流程:
1.创建Hashmap集合 模拟牌盒 键是牌的id 值是牌面
2.创建ArrayList集合 元素对应牌的id 1~53
3.创建两个数组 数组1 存储四个花色 数组2 存储0~51+大,小王
4.Collections.shuffle 打乱Arraylist集合 模拟洗牌
5.遍历Arraylist集合 模拟发牌
6.创建TreeSet集合 使牌对应的id排序 模拟理牌
7.遍历TreeSet集合 根据元素对应Hashmap的键 找到对应的值 模拟看牌
import java.util.*;
public class DDZdome {
public static void main(String[] args) {
HashMap<Integer, String> hash = new HashMap<Integer, String>();
ArrayList<Integer> arr = new ArrayList<Integer>();
String[] huase = {"♠", "♥", "♣", "♦" };
String[] pai = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "k", "A", "2" };
int id = 0;
for (String p : pai) {
for (String h : huase) {
hash.put(id, h + p);
arr.add(id);
id++;
}
}
hash.put(id, "小王");
arr.add(id);
id++;
hash.put(id, "大王");
arr.add(id);
System.out.println(hash);
Collections.shuffle(arr);
TreeSet<Integer> pl1 = new TreeSet<Integer>();
TreeSet<Integer> pl2 = new TreeSet<Integer>();
TreeSet<Integer> pl3 = new TreeSet<Integer>();
TreeSet<Integer> dp = new TreeSet<Integer>();
for (int i=0;i<arr.size();i++){
if (i>=arr.size()-3){
dp.add(arr.get(i));
}else if(i%3==0){
pl1.add(arr.get(i));
}else if(i%3==1){
pl2.add(arr.get(i));
}else if(i%3==2){
pl3.add(arr.get(i));
}
}
System.out.println(pl1);
show("地主",pl1,hash);
show("农民",pl2,hash);
show("农民",pl3,hash);
show("底牌",dp,hash);
}
public static void show(String name,TreeSet<Integer> tree,HashMap<Integer, String> hash){
System.out.print(name+" :");
for (int i:tree){
System.out.print(hash.get(i)+" ");
}
System.out.println();
}
}
输出结果:
{0=♠3, 1=♥3, 2=♣3, 3=♦3, 4=♠4, 5=♥4, 6=♣4, 7=♦4, 8=♠5, 9=♥5, 10=♣5, 11=♦5, 12=♠6, 13=♥6, 14=♣6, 15=♦6, 16=♠7, 17=♥7, 18=♣7, 19=♦7, 20=♠8, 21=♥8, 22=♣8, 23=♦8, 24=♠9, 25=♥9, 26=♣9, 27=♦9, 28=♠10, 29=♥10, 30=♣10, 31=♦10, 32=♠J, 33=♥J, 34=♣J, 35=♦J, 36=♠Q, 37=♥Q, 38=♣Q, 39=♦Q, 40=♠k, 41=♥k, 42=♣k, 43=♦k, 44=♠A, 45=♥A, 46=♣A, 47=♦A, 48=♠2, 49=♥2, 50=♣2, 51=♦2, 52=小王, 53=大王}
[0, 2, 3, 5, 6, 7, 10, 14, 16, 18, 26, 32, 38, 42, 44, 45, 48]
地主 :♠3 ♣3 ♦3 ♥4 ♣4 ♦4 ♣5 ♣6 ♠7 ♣7 ♣9 ♠J ♣Q ♣k ♠A ♥A ♠2
农民 :♥5 ♦5 ♥6 ♦6 ♥7 ♦7 ♣8 ♦8 ♥9 ♠10 ♦10 ♥J ♦J ♥Q ♥k ♦A 小王
农民 :♥3 ♠4 ♠5 ♠6 ♠8 ♥8 ♦9 ♣10 ♣J ♠Q ♦Q ♦k ♣A ♥2 ♣2 ♦2 大王
底牌 :♠9 ♥10 ♠k