ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz
思路
-
创建一个HashMap集合用于记录54张牌
- {0=♥2, 1=♦2, 2=♣2, 3=♠2, 4=♥3, 5=♦3, ... , 50=♣A, 51=♠A, 52=大王, 53=小王}
- HashMap集合的key值记录54张牌的顺序
- 创建一个普通ArrayList集合用于记录54个数字,对应HashMap的54个Key值
- 打乱整个ArrayList集合(洗牌)
-
创建四个TreeSet集合(三个玩家集合和底牌集合),按照一人一张的顺序分别将张牌的Key值存入三个玩家集合中,最后三张特殊处理存入底牌集合。
- 使用TreeSet集合存牌的原因是因为TreeSet集合自带排序功能。
- 根据四个TreeSet集合记录的Key值获取HashM集合中映射的value值
代码
package com.collection;
import java.util.*;
public class PokerTest {
public static void main(String[] args) {
String decor[] = {"♥", "♦", "♣", "♠"};
String number[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
HashMap<Integer, String> cards = new HashMap<Integer, String>();
int num = 0;
for (int j = 0; j < number.length; j++) {
for (int i = 0; i < decor.length; i++) {
cards.put(num++, decor[i] + number[j]);
}
}
cards.put(52, "大王");
cards.put(53, "小王");
ArrayList<Integer> cards_index = new ArrayList<>();
for (int i = 0; i < 54; i++) {
cards_index.add(i);
}
Collections.shuffle(cards_index);
TreeSet<Integer> player1 = new TreeSet<Integer>();
TreeSet<Integer> player2 = new TreeSet<Integer>();
TreeSet<Integer> player3 = new TreeSet<Integer>();
TreeSet<Integer> hole_cards = new TreeSet<Integer>();
for (int i = 0; i < cards_index.size(); i++) {
if (i >= 51) {
hole_cards.add(cards_index.get(i));
} else if (i % 3 == 0) {
player1.add(cards_index.get(i));
} else if (i % 3 == 1) {
player2.add(cards_index.get(i));
} else if (i % 3 == 2) {
player3.add(cards_index.get(i));
}
}
System.out.println("Player1--------");
for (Integer i1 : player1) {
System.out.print(cards.get(i1) + "\t");
}
System.out.println("\nPlayer2--------");
for (Integer i2 : player2) {
System.out.print(cards.get(i2) + "\t");
}
System.out.println("\nPlayer3--------");
for (Integer i3 : player3) {
System.out.print(cards.get(i3) + "\t");
}
System.out.println("\nHole Cards--------");
for (Integer i4 : hole_cards) {
System.out.print(cards.get(i4) + "\t");
}
}
}
/*
Player1--------
♠2 ♣3 ♥4 ♣6 ♣7 ♠7 ♥8 ♠8 ♣9 ♥10 ♣10 ♣J ♥Q ♦Q ♥K ♥A ♦A
Player2--------
♦3 ♣4 ♦5 ♣5 ♥6 ♦6 ♠6 ♦7 ♣8 ♥9 ♦9 ♥J ♠J ♣K ♠A 大王 小王
Player3--------
♥2 ♣2 ♥3 ♠3 ♦4 ♠4 ♥5 ♦8 ♠9 ♦10 ♠10 ♦J ♣Q ♠Q ♦K ♠K ♣A
Hole Cards--------
♦2 ♠5 ♥7
*/