【发布时间】:2017-05-16 22:24:18
【问题描述】:
我有这个洗牌套牌,我应该把它做成 5 张牌给四名玩家。我已经像白痴一样坐在这里几个小时了,我被困住了。
public class Deck {
public static void main(String[] args)
{
String[] SUITS = {
"Clubs", "Diamonds", "Hearts", "Spades"
};
String[] RANKS = {
"2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace"
};
// initialize deck
int n = SUITS.length * RANKS.length;
String[] deck = new String[n];
for (int i = 0; i < RANKS.length; i++) {
for (int j = 0; j < SUITS.length; j++) {
deck[SUITS.length*i + j] = RANKS[i] + " of " + SUITS[j];
}
}
// shuffle
for (int i = 0; i < n; i++) {
int r = i + (int) (Math.random() * (n-i));
String temp = deck[r];
deck[r] = deck[i];
deck[i] = temp;
}
// print shuffled deck
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++)
System.out.println(deck[i])
}
}
我被困在最后一部分。我正在为四名玩家获得五张类似的牌。 它看起来像这样:
- 红桃皇后
- 红桃皇后
- 红桃皇后
- 红桃皇后
- 红桃皇后
- 10 颗钻石
- 10 颗钻石
- 10 颗钻石
- 10 颗钻石
- 10 颗钻石
- 红心6
- 红心6
- 红心6
- 红心6
- 红心6
- 黑桃10
- 黑桃10
- 黑桃10
- 黑桃10
- 黑桃10
如果我的意图是向四个玩家发五张不同的牌,我应该怎么做?
我正在用 Java 编码,做数组,但我不能使用任何 java utils。
【问题讨论】:
-
"I can't use any java utils" 这到底是什么意思?
-
看起来你在这里打印了五次同一张卡片
System.out.println(deck[i])。 -
抱歉,对 utils 一词不清楚。我的意思是我不能导入任何东西,例如“import java.utils”。等