gpt4 book ai didi

java - 尝试对 "Deck"类进行洗牌,但似乎没有进行洗牌

转载 作者:行者123 更新时间:2023-12-02 08:18:54 25 4
gpt4 key购买 nike

我已经编写了一个 Deck 类,现在必须对其进行洗牌,然后打印出几手牌来检查它是如何工作的。然而,它似乎并没有洗牌任何东西,而是给出了完全相同的牌组。

public void makeHands () {
Deck deck = new Deck ();
Deck shuffled = shuffleDeck (deck);
printDeck (subdeck (shuffled, 0, 4));
printDeck (subdeck (shuffled, 5, 9));
printDeck (subdeck (shuffled, 10, 14));
printDeck (subdeck (shuffled, 15, 19));
}

public static int randomInt (int length, int i) {
double x = Math.random () * length;
int g = (int) x;
return g;
}

public Deck shuffleDeck (Deck deck) {
for (int i=0; i<deck.cards.length; i++) {
int g = randomInt (deck.cards.length, i);
swapCards (i, g);
}
return deck;
}
}


public void swapCards (int first, int swap) {
Card temp = cards[first];
cards[first] = cards[swap];
cards[swap] = temp;
}

最佳答案

代码看起来不完整。

看起来您需要将牌组对象传递给 swapCards 方法。

swapCards() 指的是卡片数组。目前还不清楚这个数组是在哪里声明的。相反,您应该将牌组传递给此方法并交换牌组.cards[first]和牌组.cards[swap]。

关于java - 尝试对 "Deck"类进行洗牌,但似乎没有进行洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5839141/

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