gpt4 book ai didi

java - 简单的 Java 纸牌游戏 - 洗牌时遇到麻烦(数组)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:04 24 4
gpt4 key购买 nike

我是 Java 的新手,我很难理解如何洗牌数组(或我的牌组数组)。我试过使用 Random 类,但它对我不起作用。无论如何,这里是我创建的类:

纸牌游戏

import java.util.Random;

public class CardGame {

public static void main(String[] args) {

// final int SPADES = 0, HEARTS = 1, DIAMONS = 2, CLUBS = 3;
final int ACE = 1, TWO = 2, THREE = 3, FOUR = 4, FIVE = 5, SIX = 6, SEVEN = 7, EIGHT = 8;
final int NINE = 9, TEN = 10, JACK = 11, QUEEN = 12, KING = 13;

Random rand = new Random();

int[][] deck = {
{ ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING },

player1.setHand(deck[i][randIndex]);
player2.setHand(deck[i][randIndex]);
player3.setHand(deck[i][randIndex]);
}
}

System.out.println(player1.getHand());
System.out.println(player2.getHand());
System.out.println(player3.getHand());
}
}

播放器

public class Player {

final int MAX_HAND = 6;

private String playerName;
private int playerHand[] = new int[MAX_HAND];

public Player(String name) {
playerName = name;
}

public void setHand(int card) {

int currentLength = playerHand.length;

if (currentLength == MAX_HAND) {
return;
}

playerHand[currentLength] = card;
}

public String getHand() {

String cardN
case 8: cardNames += "Eight"; break;
case 9: cardNames += "Nine"; break;
case 10: cardNames += "Ten"; break;
case 11: cardNames += "Jack"; break;
case 12: cardNames += "Queen"; break;
case 13: cardNames += "King"; break;
}

if (i < playerHand.length - 2) {
cardNames += ", ";
}

}

return playerName + " has " + cardNames + " on his hand.";
}
}

结果总是:

Name1 has Ace, Two, Three, Four and Five on his hand.
Name2 has Ace, Two, Three, Four and Five on his hand.
Name3 has Ace, Two, Three, Four and Five on his hand.

我在为 deck 的内部数组生成随机索引时做错了什么?

谢谢。

最佳答案

getHand() 方法中将 switch (i) 替换为 switch (playerHand[i]) 并调用 nextInt () 对每个玩家都适用,而不仅仅是每次迭代一次。

setHand()改成


int index = 0;
public void addCard(int card) {
if (index == MAX_HAND) {
return;
}
playerHand[index++] = card;
}

关于java - 简单的 Java 纸牌游戏 - 洗牌时遇到麻烦(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332743/

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