2017-11-19 9 views
-3

私の教科書は私にこのコードを渡して52枚の新しいカードを作成すると言っていました。私はそれが何をしているのか分かりません。なぜなら私がGoogleで見る方法はこれとは非常に異なっているからです。私は "インデックス"変数が何をしているのか、このメソッドをどのように印刷できますか?私はprintdeckメソッドを持っていますが、このメソッドが何も返さない場合、そのメソッドをどのように呼び出すのでしょうか?配列とオブジェクトを使ってJavaでカードのデッキを作る?

public static void buildDeck() { 
    Card[] deck = new Card [52]; 
int index = 0; 
for (int suit = 0; suit <=3; suit++) { 
    for (int rank = 1; rank <= 13; rank++) { 
     deck[index] = new Card (suit, rank); 
     index++; 
    } 

} 

//here is my printDeck method 
public static void printCard (Card c) { 
    String[] suits = { "Clubs", "Diamonds", "Hearts", "Spades" }; 
    String [] ranks = { "nart", "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "Queen", "king" }; 
    System.out.println (ranks[c.rank] + " of " + suits[c.suit]); 
} 
public static void printDeck (Card[] deck) { 
    for (int i = 0; i< deck.length; i++) { 
     printCard (deck[i]); 
    } 
} 

ご協力いただきありがとうございます。

+2

あなたの教科書は、コードの内容についても説明してはいけませんか? 'index'は単に' int'変数(配列の要素にアクセスするために使われる)です。 – UnholySheep

+1

そのbuildDeckメソッドは正しいとは言えません。メソッドが終了するとすぐに、deck変数は範囲外になり、アクセス不能になります。 –

+2

プライベートデッキを建ててすぐにそれを投げ捨てますか?あなたの**教科書**はあなたにそのアマチュア時間のゴミを与えましたか?私はあなたに良い教科書が必要だと思います! –

答えて

0

インデックス変数は、名前状態と同様に、デッキ用の計数指標として使用されます。

printDeck(..)メソッドは、実際に何かを印刷しないdoesnのprintDeck方法System.out.println

0
  • を呼び出すリターンでprintCard(..)メソッドと、そのメソッドを呼び出すことで、コンソールに全体を印刷する必要がありますコンソール。カードの配列を取り、各カードに対してメソッドprintCard(現在のカードを引数として指定)を呼び出します。
  • かかりprintCard方法 - 前述したように - 単一のカードを、コンソールにそのランク/スイートを印刷します。

    public static void printCard(Card c){ System.out.println(ranks [c.rank] + of "+ suits [c.suit]);

    }

index変数は、例えば使用されていますカードのデッキを初期化する。

  • 最初に、アレイに52個の「空白」のカードがあるか、アレイの各エントリがnullであるといいます。
  • 各繰り返しで、new Cardを作成していて、それをデッキのある位置に割り当てる必要があります。これはindexを介して行われ、繰り返しごとにインクリメントされます。
+0

私はbuildDeckメソッドを印刷するとき、なぜそれは単に "クラブ"スーツを印刷しますか?そして、2つのクラブと3つのクラブの間に「スレッドで例外が発生しました」と主な「java.lang.NullPointerException」と言っている間違いがありますか? –

+0

デバッガを使ってNullPointerExceptionの原因を突き止めることをお勧めします。例外は、なぜあなただ​​けがクラブを説明することができます。 –

0

buildDeckメソッドからcard []デッキを返してから、printメソッドに渡す必要があります。

関連する問題