0

我正在尝试用一副纸牌制作游戏。目前,我只有一个类,其中包含我使用 add 方法单独添加的卡片 LinkedList。除了在某个时刻,我已经对游戏的其余部分进行了编码,我想像程序刚开始执行时一样将牌组重置为完整的牌组。我将如何以最简单的方式做到这一点?我想将它保存在 LinkedList 结构中,因为我可以使用内置的 shuffle 方法等...

public static void main(String[] args) {
LinkedList<String> deck = new LinkedList<String>();
deck.add("2C");
deck.add("3C");
deck.add("4C");
deck.add("5C");
    ... //etc
Collections.shuffle(deck);
System.out.println("Shuffled deck: \n" + deck);

(我想在改变牌组(移除、交易等)后将“牌组”重置回初始状态

4

2 回答 2

2

这个问题最面向对象的解决方案是创建一个Deck类。然后在构造函数中初始化LinkedList卡片。要“重置”您的牌组,您只需创建一个新Deck对象。

于 2012-11-21T22:03:25.077 回答
1

最简单也是最便宜的方法是使用一套的卡片。

生成一次排序的牌组,然后在更改之前制作一个“工作副本”。或者只是通过将该代码放入方法中从头开始创建一个新的LinkedList<String> newDeck()

这是非常简单和干净的:

LinkedList<String> workingdeck = new LinkedList<String>(masterdeck);

如果您想非常 OOP,请创建一个管理套牌的课程。仍然:要重置,您可能只想创建一个新牌组;通过复制或克隆。

于 2012-11-21T22:03:50.863 回答