gpt4 book ai didi

java - 我的 Java 扑克游戏中的每个玩家都使用自己的牌组

转载 作者:行者123 更新时间:2023-12-01 22:49:41 27 4
gpt4 key购买 nike

您好,我正在尝试创建一款视频扑克游戏。这是我到目前为止所拥有的一部分(为了节省空间,我没有包括枚举、导入、变量、toStrings 等):

My Card 类定义我们的卡片:

public Card(Value value, Suit suit) {

this.value = value;
this.suit = suit;
}

我的 Deck 类创建一副 52 张牌的牌组,并在 draw() 方法中返回 5 张牌的手牌:

private ArrayList<Card> deck = new ArrayList<Card>();
private ArrayList<Card> hand = new ArrayList<Card>();
private final int HANDSIZE = 5;

public Deck() {

for(Suit suit : Suit.values()) {
for(Value value : Value.values()){
Card card = new Card(value, suit);
deck.add(card);
}
}
}

public ArrayList<Card> draw() {

Random rng = new Random();

for(int i = 0; i < HANDSIZE; i++){
int getCard = rng.nextInt(deck.size());
Card addCard = deck.get(getCard);
hand.add(addCard);
deck.remove(getCard);
}

return hand;
}

我的玩家类可以提供有关我们玩家的信息。

public class Player extends Deck {

private String name;
private int chips;

public Player(String name, int chips) {

this.name = name;
this.chips = chips;
}

问题是每个玩家都使用自己的牌组,因此有时两个或更多不同的玩家可能拥有相同的牌。我的问题是如何设置我的程序以使每个玩家使用相同的牌组?谢谢。

输出示例:

Name: John Doe, Cash: 500 [Jack of Hearts, Ten of Hearts, Two of Diamonds, Ace of Clubs, Nine of Diamonds]

Name: Jane Doe, Cash: 500 [King of Spades, Two of Diamonds, Jack of Hearts, Ace of Spades, Seven of Diamonds]

最佳答案

不要让 Player 类扩展 Deck。这基本上是让玩家使用自己(在某种程度上),而你让他们自己“拥有”一套牌组。因此,需要单独使用Deck类。

在 Player 构造函数中传递 Deck 实例,如下所示:

public class Player {

private String name;
private int chips;
private Deck deck;

public Player(String name, int chips, Deck deck) {
this.name = name;
this.chips = chips;
this.deck = deck;
}
}

关于java - 我的 Java 扑克游戏中的每个玩家都使用自己的牌组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900525/

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