0

私はトランプのデッキでゲームを作ろうとしています。現在、addメソッドを使用して個別に追加したカードのLinkedListを持つクラスは1つしかありません。ある時点を除いて、ゲームの残りの部分をコーディングしました。プログラムが最初に実行を開始したときのように、カードのデッキをフルセットにリセットしたいと思います。これを最も簡単な方法で行うにはどうすればよいですか?組み込みのシャッフルメソッドなどを使用できるので、LinkedList構造に保持したいと思います。

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 に答える