如何重置一副牌?

时间:2012-11-21 22:00:12

标签: java

我正在尝试用一副纸牌制作游戏。目前,我只有一个带有LinkedList卡的类,我使用add方法单独添加。我的其余游戏编码除了在某一点上,我想将卡片组重新设置为全套,就像程序首次开始执行一样。我怎样才能以最简单的方式做到这一点?我想将它保存在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);

(我想在改变牌组后将'牌组'重置回初始状态(删除,交易等)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

最简单且最便宜的方法是使用新的卡片。

生成一个已排序的牌组,并在更改它之前 ,制作一个“工作副本”。或者只是将该代码放入方法LinkedList<String> newDeck()

中,从头开始创建一个新的

非常简单明了:

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

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