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]

你可能感兴趣的:(JavaSE)