import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PokerDemo {
public static void main(String[] args) {
//创建HashMap,键是编号,值是牌
HashMap<Integer,String> hm=new HashMap<Integer,String>();
//创建ArrayList,存储编号
ArrayList<Integer> list=new ArrayList<>();
//创建花色组和点数组
String[] color= {"♦","♥","♠","♣"};
String[] number= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
ArrayList<String> list2=new ArrayList<String>();
for(String s:number) {
for(String ss:color) {
list2.add(ss+s);
}
}
list2.add("小王");
list2.add("大王");
//System.out.println(list2);
//从0开始往HashMap里面存储编号,并存储对应的牌,同时往ArrayList里面存储编号
for(int i=0;i<54;i++) {
list.add(i);
hm.put(i, list2.get(i));
}
// System.out.println(hm);
//洗牌(洗的是编号),用Collections的shuffle()方法实现
Collections.shuffle(list);
//System.out.println(list);
//发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收
TreeSet<Integer> wj1=new TreeSet<Integer>();
TreeSet<Integer> wj2=new TreeSet<Integer>();
TreeSet<Integer> wj3=new TreeSet<Integer>();
TreeSet<Integer> dp=new TreeSet<Integer>();
for(int i=0;i<54;i++) {
if(i>=51) {
dp.add(i);
}else if(i%3==0) {
wj1.add(i);
}else if(i%3==1) {
wj2.add(i);
}else if(i%3==2) {
wj3.add(i);
}
}
look("玩家1",wj1,hm);
look("玩家2",wj2,hm);
look("玩家3",wj3,hm);
look("底牌",dp,hm);
}
//看牌方法(遍历TreeMap集合,获取编号,到HashMap中找到对应的牌
public static void look(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm) {
System.out.print(name+"的牌是:");
for(Integer i:ts) {
System.out.print(hm.get(i)+" ");
}
System.out.println();
}
}
模拟斗地主(洗牌、发牌、看牌)
最新推荐文章于 2024-07-27 17:56:15 发布