2012-03-10 11 views
1

私はデッキ内の各スーツの配列を使ってカードのデッキを作ろうとしています。カードが描かれると、そのカードが属するスーツの配列からカードが取り除かれます。誰かがシャッフルメソッドを呼び出すと、これらの配列を「再作成」します。私はこれを行う方法について助けが必要です。アレイを再作成する

public class Deck { 

    private static String[] hearts = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
    private static String[] diamonds = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
    private static String[] clubs = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
    private static String[] spades = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
    private static int cardsLeft = 52; 


    public static void shuffle() { 

     /* 
     * This method will shuffle the deck. It will simply recreate 
     * the arrays after the cards have been deleted from being dealt. 
     */ 

     hearts = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
     diamonds = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
     clubs = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
     spades = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; 
     cardsLeft = 52; 
    } 
} 

私は一番上に配列を作成し、シャッフル方法で下の元の配列で上書きしようとします。

他に何か助けてください - 私自身でこれをやりたいのですが、私はこの問題の助けを求めるだけです。

ありがとうございます!

+0

あなたが直面している問題は何ですか? –

答えて

2

既に述べたように、Javaコレクションのリストを使用するだけです。

クイックや汚れ例:これは助け

private static ArrayList<String> hearts; 
private static ArrayList<String> diamonds; 
private static ArrayList<String> clubs; 
private static ArrayList<String> spades; 
private static int cardsLeft = 52; 

static { 
    hearts = new ArrayList<String>(); 
    diamonds = new ArrayList<String>(); 
    clubs = new ArrayList<String>(); 
    spades = new ArrayList<String>(); 

    for(int i = 0; i <= 10; i++) { 
     hearts.add(Integer.toString(i)); 
    } 
    hearts.add("jack"); 
    hearts.add("queen"); 
    hearts.add("king"); 
    hearts.add("ace"); 

    diamonds.addAll(hearts); 
    clubs.addAll(hearts); 
    spades.addAll(hearts); 

} 

// will shuffle your list 
public static void main(String[] args) { 

    for(int j = 0; j <=10 ; j++) { 
     Collections.shuffle(hearts); // this will do the magic 

     System.out.println("List shuffled: ");  
     for(String i : hearts) 
      System.out.println(i + " "); 
    } 

} 

希望、楽しみを持っています!

2

は、この構文を使用します。

hearts = new String[]{"1","2","3",...}; 

要素を削除する場合はとにかく、私は、配列の代わりにリストを使用してお勧めします。

2

上記のように、配列の代わりにListインターフェイスのインスタンスを使用し、 メソッドを使用して、独自のメソッドを記述する代わりに Collections.shuffle(List list);メソッドを使用します。 shuffleメソッドの名前を現在の名前に変更してください。その名前は、実際にはそれに比べてかなり直観的ではありません。

+0

+1 beeingのための高速:) – SimonSez

関連する問題