java把52张牌分给4个人,并对4个人手中的牌进行排序
时间: 2024-02-17 12:05:16 浏览: 25
可以使用一个大小为52的数组来表示一副扑克牌,然后使用随机数来模拟洗牌,最后将牌依次发给4个人并对每个人的牌进行排序即可。具体实现可以参考以下代码:
```java
import java.util.*;
public class DealAndSortCards {
public static void main(String[] args) {
String[] suits = {"♠", "♥", "♦", "♣"};
String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
String[] cards = new String[52];
for (int i = 0; i < 52; i++) {
cards[i] = ranks[i % 13] + suits[i / 13];
}
Random rnd = new Random();
for (int i = 51; i > 0; i--) {
int j = rnd.nextInt(i + 1);
String temp = cards[i];
cards[i] = cards[j];
cards[j] = temp;
}
String[] players = new String[4];
players[0] = "Player 1: ";
players[1] = "Player 2: ";
players[2] = "Player 3: ";
players[3] = "Player 4: ";
int playerIndex = 0;
for (int i = 0; i < 52; i++) {
players[playerIndex] += cards[i] + " ";
playerIndex = (playerIndex + 1) % 4;
}
for (int i = 0; i < 4; i++) {
String[] playerCards = players[i].split(" ");
Arrays.sort(playerCards);
players[i] = String.join(" ", playerCards);
System.out.println(players[i]);
}
}
}
```
代码中使用了两个数组来分别表示扑克牌的花色和点数,然后使用一个大小为52的数组来表示一副完整的扑克牌。通过一个随机数生成器来模拟洗牌过程,最后将牌依次发给4个人并对每个人的牌进行排序。可以使用 `split` 方法将每个人手中的牌分割成数组,然后使用 `Arrays.sort` 方法对数组进行排序,最后将排序后的牌重新组合成字符串输出即可。