java编程模拟斗地主发牌看牌

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();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值