gpt4 book ai didi

java - 如何在数组中获取不同的随机对象?

转载 作者:行者123 更新时间:2023-12-01 21:15:29 27 4
gpt4 key购买 nike

抱歉,如果这很长,但我正在编写一个程序,从 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com