Java集合:斗地主发牌案例

案例:模拟斗地主,给三个玩家发牌,留下三张作为底牌,打印出三个玩家的牌和底牌。

public static void main(String[] args) {

		ArrayList<String> poker = new ArrayList<String>();

		// 花色
		String[] huase = { "♣", "♦", "♥", "♠" };
		// 大小
		String[] shuzi = { "K", "Q", "J", "A", "2", "3", "4", "5", "6", "7", "8", "9", "10" };

		// 添加每张牌
		for (int i = 0; i < huase.length; i++) {
			// 获取每一个花色
			for (int j = 0; j < shuzi.length; j++) {
				// 获取每一个数
				poker.add(huase[i] + shuzi[j]);
			}

		}
		poker.add("b joker");// 大王
		poker.add("l joker");// 小王

		// System.out.println(poker.size());

		// 调用shuffle方法,模拟洗牌
		Collections.shuffle(poker);
		// System.out.println(poker);

		ArrayList<String> 玩家1 = new ArrayList<String>();
		ArrayList<String> 玩家2 = new ArrayList<String>();
		ArrayList<String> 玩家3 = new ArrayList<String>();
		ArrayList<String> 底牌 = new ArrayList<String>();

		for (int i = 0; i < 51; i++) {

			if (i % 3 == 0) {
				玩家1.add(poker.remove(0));

			}
			if (i % 3 == 1) {
				玩家2.add(poker.remove(0));

			}
			if (i % 3 == 2) {
				玩家3.add(poker.remove(0));

			}

		}

		// 剩下三张就是底牌
		底牌 = poker;

		// 打印玩家的牌
		System.out.println("玩家1" + 玩家1);
		System.out.println("玩家2" + 玩家2);
		System.out.println("玩家3" + 玩家3);
		System.out.println("底牌" + 底牌);
	}

打印效果:

玩家1[♠10, ♠8, ♥2, ♣5, ♦2, ♦3, ♠2, ♠Q, ♥10, ♣J, ♦7, ♦4, ♥J, ♦K, ♣9, ♥3, ♦5]
玩家2[b joker, ♦Q, ♣A, ♣10, ♠7, ♦J, l joker, ♥6, ♠K, ♠6, ♠9, ♣3, ♣2, ♥4, ♠5, ♦6, ♠J]
玩家3[♥A, ♠A, ♥9, ♥K, ♣K, ♦9, ♥7, ♣8, ♦A, ♦8, ♠4, ♥Q, ♥5, ♣7, ♥8, ♣Q, ♠3]
底牌[♣6, ♦10, ♣4]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值