2016-11-21 5 views
-1

私はこのために、nullポインタ例外を取得していますし、私はJavaのポーカーゲームにNullPointer

public static boolean hasPair(Card[] cards) { 
    int k=0; 
    cards = new Card[5]; 

    for (int atPos = 0; atPos<5; atPos++){ 
     for (int atPos2 = atPos+1; atPos2<5; atPos2++){ 

      if(cards[atPos].getValue() == cards[atPos2].getValue()){ 
       k++; 
      } 
      if (atPos2 == (cards.length-1) && k!=1){ 
       k=0; 
      } 
      else if (atPos2 == (cards.length-1) && k>=2){ 
       return true; 
      } 
     } 
    } 
    return false; 
} 

私の方法は、カードの私の手が同じ値を保持する2枚のカードを持っているかどうかをテストしている理由はわからないんだけどそしてNULポインタが、それはこのライン内

if(cards[atPos].getValue() == cards[atPos2].getValue()){ 

だと言う私も、この方法を持っている...私はヘルパーとしてそれを使うだろうか?

public Card[] deal(int numCards) { 
    Card[] newArray; 
    newArray = new Card[numCards]; 
     for (int index=0; index<numCards; index++){ 
      newArray[index] = cards.get(0); 
      cards.remove(0); 
    } 
    return newArray; 
    } 
+0

あなたはライン 'カード=新しいカードを持っているので、[5];'あなたの方法の上部に、あなたの 'cards'配列は常に空になります。配列に配列を渡しているので、おそらく意図したとおりではありません。 – khelwood

+0

どうすれば修正できますか? – masonft

答えて

3

2行目に、オブジェクトの新しい配列を作成します。その配列内のすべてのオブジェクトはnullなので、最初に配列を埋める必要があります。

+0

どうすればいいですか? – masonft

+0

配列全体を繰り返し処理して、オブジェクトCardをすべての位置に追加できます。以下のような 何か:カード[i]は=新しいカード()(;;私はcards.lengthを klancar16

+0

。 – klancar16

関連する問題