抱歉,如果这很长,但是我正在编写一个程序,可以从52张标准牌中抽出一张扑克手(5张不同的纸牌)。我仍然苦苦挣扎的唯一部分是获得不同的纸牌。我现在拥有的代码就很简单,并且大部分都能正常工作,但是有时可以多次绘制同一张卡片。我希望将卡抽出后从卡组中取出,然后卡在那部分上。
Card[] hand = new Card[5];
for (int i = 0; i < 5; i += 1)
{
int index = rand.nextInt(52);
hand[i] = cards[index];
}
return hand;
最佳答案
使用List
和Collections.shuffle()。
List<Card> cards = new ArrayList<>(52);
for (int i = 0; i < 52; i++) {
cards.add(new Card(i)); // or so
}
Collections.shuffle(cards);
Card[] hand = new Card[5];
for (int i = 0; i < 5; i += 1) {
hand[i] = cards.remove(0);
}
return hand;
关于java - 如何获得数组中不同的随机对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40252860/