public static void main(String[] args) {
//创建一个map集合
Map<Integer,String> map=new HashMap<>();
//创建一个list
List<Integer> list=new ArrayList<>();
//创建一个花色数组 黑桃♠、红心♥、梅花♣、方块♦
String[] colors={"♠","♥","♣","♦"};
//传建一个点数数组
String [] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
int key = 0;
//先将所有的牌以序号的形式存入map中。
for(String color:colors){
for(String num:nums){
map.put(key, color+num);
//再将序号放入list中
list.add(key);
key++;
}
}
map.put(key, "大王");
list.add(key++);
map.put(key, "小王");
list.add(key);
//新建3个TreeSet来存 3玩家手中的牌 当然存入的是 牌的序号
Set<Integer> zs=new TreeSet<>();
Set<Integer> ls=new TreeSet<>();
Set<Integer> zw=new TreeSet<>();
//随机发牌,留3张底牌
while(list.size()>3){
Random random = new Random();
//可能会有重复的随机数出现
int nextInt = random.nextInt(list.size());
//注意这里面要用角标,因为如果出现重复的随机数的话就会导致插入不进去TreeSet中。但是用角标的话就是取的list中对应的数
zs.add(list.get(nextInt));
list.remove(nextInt);
nextInt = random.nextInt(list.size());
ls.add(list.get(nextInt));
list.remove(nextInt);
nextInt = random.nextInt(list.size());
zw.add(list.get(nextInt));
list.remove(nextInt);
}
//看牌
System.out.print(zs.size()+"张三的牌: ");
for(Integer p:zs){
System.out.print(map.get(p)+" ");
}
System.out.println();
System.out.print(ls.size()+"种四的牌: ");
for(Integer p:ls){
System.out.print(map.get(p)+" ");
}
System.out.println();
System.out.print(zw.size()+"周五的牌: ");
for(Integer p:zw){
System.out.print(map.get(p)+" ");
}
System.out.println();
}
java编程模拟斗地主发牌看牌
最新推荐文章于 2022-12-27 17:39:18 发布