gpt4 book ai didi

java - 如何使用 Math.random() 在 Card 对象中洗牌

转载 作者:行者123 更新时间:2023-11-30 08:13:21 25 4
gpt4 key购买 nike

所以问题是我没有得到任何卡片等级或卡片值(value),例如数字 2-14,我的角色“C”、“D”、“H”、“S”似乎被洗牌了。

我将如何洗牌包含

new Card(int, char)

用字符 'C', 'D', 'H', 'S' 代表牌组。

下面的这段代码似乎无法保存任何排名数字。

for (int i = 0; i <= 51; i++)           
cards[i] = new Card((int)Math.random() * 52, 'D');

如果卡片 [14] 随机生成整数 35,则洗牌应该如何工作的示例,然后卡片 [14] 将与卡片 [35] 交换。

public void shuffle()
{
for (int i = 0; i <= 51; i++)
cards[i] = new Card((int)Math.random() * 52, 'D');

for (int i = 0; i <= 51; i++) {
Card temp = cards[i];
for (int j = 0; j <= 51; j++) {
cards[i] = cards[j];
cards[j] = temp;
}
}
}

最佳答案

我建议您先创建套牌,然后再洗牌。

// Create deck
Card[] cards = new Card[52];
int i = 0;
for (int v = 2; v <= 14; v++)
for (char s : "CDHS".toCharArray())
cards[i++] = new Card(v, s);

// Shuffle
Collections.shuffle(Arrays.asList(cards));

关于java - 如何使用 Math.random() 在 Card 对象中洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008628/

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