当前位置: 首页 > 知识库问答 >
问题:

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

封景曜
2023-03-14
public Card(Value value, Suit suit) {

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

My Deck类在draw()方法中创建一个52张牌副牌并返回一张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;
    }

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

姓名:无名氏,现金:500“黑桃之王,钻石之二,红心杰克,黑桃王牌,钻石之七”

共有1个答案

宿洋
2023-03-14

如果没有其他方便的地方来存放甲板,可以使用单例模式:

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

private static Deck deck = new Deck();

public static Deck getInstance() {
  return deck;
}

// Private Constructor
private 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();
    ArrayList<Card> hand = new ArrayList<Card>();
    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 {

    private String name;
    private int chips;

    public Player(String name, int chips) {

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

    public ArrayList<Card> draw() {
        Deck.getInstance().draw()
    }
 类似资料:
  • 我正在做一个项目,创造一个扑克游戏。尽管指令很清楚,但我在面向对象编程方面遇到了很多麻烦。 因此,对于这个项目,我们必须创建四个对象,卡、牌组、手和扑克手。我已经完成了卡片对象的创建,现在正在处理卡片组对象。这就是我现在遇到麻烦的地方。我试着用谷歌搜索我的问题。然而,由于我是一个编程新手,我真的不了解他们的方法。例如,我不知道如何使用ArrayList。我只知道非常基本的数组方法。 以下代码是我迄

  • 本文向大家介绍C++扑克牌的洗牌发牌游戏设计,包括了C++扑克牌的洗牌发牌游戏设计的使用技巧和注意事项,需要的朋友参考一下 笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏。具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌。然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等。 笔者在学习他人设计的基础上,完成了自己的程序设计。这里将源程序分享给大家。 

  • 我有一副牌洗牌和返回结果,但现在我想根据用户输入更改输出:玩家数量和每个玩家的纸牌数量。 原始代码: CardRun-main 甲板级 卡片类 纸牌输出甲板:54 玩家数量:4(由用户输入) 每个用户的纸牌数量:5(由用户输入) 玩家1:黑桃A,红心2,红小丑 玩家2:红心8,梅花10,红心9 玩家1手牌更好。

  • 本文向大家介绍JAVA collection集合之扑克牌游戏实例,包括了JAVA collection集合之扑克牌游戏实例的使用技巧和注意事项,需要的朋友参考一下 Collection 层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序

  • 1-4:玩家从1-6随机向前移动 5:玩家从4-11向前移动一个随机量(随机8+4) 6:玩家移动到另一个玩家所在的位置(见下文) 我是新的代码编写(这是我的第四个程序编写),并没有广泛的知识知道什么是错误的。代码不需要熟练地完成,我只想让它正常工作。我们非常感谢您的帮助。 }

  • 我的计算机科学课的猪骰子游戏不会在每次回合后保存每个分数,即使玩家达到最高分数,我的游戏也不会停止(我知道原因是布尔值,但我不知道还能用什么)。此外,当一名球员拒绝再次掷骰时,得分将回到零。如果有人能帮我,那就太好了!!谢谢。