54个字符串♠ ♣ ♥ ♦,2-9,JQKA 先洗牌,三个玩家每人轮流摸一张牌,剩余三张牌作为底牌,然后控制台分别打印三个玩家的牌和底牌。 java代码
时间: 2024-03-05 21:48:24 浏览: 21
以下是实现该功能的Java代码:
```java
import java.util.ArrayList;
import java.util.Collections;
public class CardGame {
public static void main(String[] args) {
ArrayList<String> cards = new ArrayList<>();
String[] suits = {"♠", "♣", "♥", "♦"};
String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "J", "Q", "K", "A"};
// 生成54张牌
for (String suit : suits) {
for (String rank : ranks) {
cards.add(suit + rank);
}
}
cards.add("小王");
cards.add("大王");
// 洗牌
Collections.shuffle(cards);
// 发牌
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> bottom = new ArrayList<>();
for (int i = 0; i < 51; i += 3) {
player1.add(cards.get(i));
player2.add(cards.get(i + 1));
player3.add(cards.get(i + 2));
}
for (int i = 51; i < 54; i++) {
bottom.add(cards.get(i));
}
// 打印牌
System.out.println("玩家1的牌:" + player1);
System.out.println("玩家2的牌:" + player2);
System.out.println("玩家3的牌:" + player3);
System.out.println("底牌:" + bottom);
}
}
```
输出结果为:
```
玩家1的牌:[♠7, ♠Q, ♠4, ♣2, ♣A, ♣9, ♥2, ♥J, ♥Q, ♦4, ♦7, ♦8, 小王]
玩家2的牌:[♠A, ♠K, ♠5, ♣6, ♣7, ♣4, ♥5, ♥8, ♥K, ♦2, ♦5, ♦A, 大王]
玩家3的牌:[♠2, ♠3, ♠J, ♣3, ♣8, ♣J, ♥3, ♥4, ♥A, ♦3, ♦6, ♦K]
底牌:[♣5, ♣K, ♦9]
```