2016-05-05 7 views
0

私がプログラムを実行したときに私が戻ってきたのは、ヌルです...そして、私はもうこれ以上見ることができません。私はちょうどエラーを見つけるように見えることができない...誰かがちょっとヒントを与えることができます...私は他の詳細が関係しているか分からない。なぜ私はNULLを返すだけですか?

public class Deckofcards 
    { 
     public static final int NCARDS = 52; 

     private card[] deckOfCards;   // Contains all 52 cards 
     private int currentCard;   // deal THIS card in deck   

     public Deckofcards() // Constructor 
     { 
    deckOfCards = new card[ NCARDS ]; 

    int i = 0; 

    for (int suit = card.SPADE; suit <= card.DIAMOND; suit++) 
     for (int rank = 1; rank <= 13; rank++) 
     deckOfCards[i++] = new card(suit, rank); 

     private byte cardSuit; 
     private byte cardRank; 

     public card(int suit, int rank) 
     { 
    if (rank == 1) 
     cardRank = 14;  // Give Ace the rank 14 
    else 
     cardRank = (byte) rank; 

    cardSuit = (byte) suit; 
     } 

     public boolean equals(card x) 
     { 
    if (this.cardSuit == x.cardSuit && 
      this.cardRank == x.cardRank ) 
     return (true); 
    else   
     return (false); 
     } 

     public String toString() 
     { 
    return (Rank[ cardRank ] + Suit[ cardSuit ]); 
     } 
    } 


    public class Dealer 

    { 
     public static void main(String[] args) 
     { 

    Deckofcards a; 

    a = new Deckofcards(); 
    System.out.println(a);  // What a new deck look like  

    System.out.println("Shuffle cards....");    
    a.shuffle(1000);   // Shuffle deck of card "a" 
    System.out.println(a);  // Deck after shuffling 

    card b; 

    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 

     } 
    }  
    currentCard = 0; 
     } 

     //shuffle(n): shuffle the deck 

     public void shuffle(int n) 
     { 
    int i, j, k; 

    for (k = 0; k < n; k++) 
    { 
     i = (int) (NCARDS * Math.random()); // Pick 2 random cards 
     j = (int) (NCARDS * Math.random()); // in the deck 

     //swap these randomly picked cards 

     card tmp = deckOfCards[i]; 
     deckOfCards[i] = deckOfCards[j]; 
     deckOfCards[j] = tmp;; 
    } 

    currentCard = 0; // Reset current card to deal 
     } 

    //deal(): deal deckOfCards[currentCard] out 

     public card deal() 
     { 
    if (currentCard < NCARDS) 
    { 
     return (deckOfCards[ currentCard++ ]); 
    } 
    else 
    { 
     System.out.println("Out of cards error"); 
     return (null); // Error; 
    } 
     } 

     public String toString() 
     { 
    String s = ""; 
    int k; 

    k = 0; 
    for (int i = 0; i < 4; i++) 
    { 
     for (int j = 1; j <= 13; j++) 
     s += (deckOfCards[k++] + " "); 

     s += "\n"; 
    } 
    return (s); 
     } 
    } 


    public class card 
    { 
     public static final int SPADE = 4; 
     public static final int HEART = 3; 
     public static final int CLUB = 2; 
     public static final int DIAMOND = 1; 

     private static final String[] Suit = { "*", "d", "c", "h", "s"}; 
     private static final String[] Rank = { "*", "1", "2", "3", "4", 
       "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"}; 

     private byte cardSuit; 
     private byte cardRank; 

     public card(int suit, int rank) 
     { 
    if (rank == 1) 
     cardRank = 14;  // Give Ace the rank 14 
    else 
     cardRank = (byte) rank; 

    cardSuit = (byte) suit; 
     } 

     public boolean equals(card x) 
     { 
    if (this.cardSuit == x.cardSuit && 
      this.cardRank == x.cardRank ) 
     return (true); 
    else   
     return (false); 
     } 

     public String toString() 
     { 
    return (Rank[ cardRank ] + Suit[ cardSuit ]); 
     } 
    } 


    public class Dealer 

    { 
     public static void main(String[] args) 
     { 

    Deckofcards a; 

    a = new Deckofcards(); 
    System.out.println(a);  // What a new deck look like  

    System.out.println("Shuffle cards....");    
    a.shuffle(1000);   // Shuffle deck of card "a" 
    System.out.println(a);  // Deck after shuffling 

    card b; 

    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 
    b = a.deal(); 
    System.out.println("Deal a card: " + b); 

     } 
    } 

これは私が受け取っているものです。

null null null null null null null null null null null null null 

ヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌル ヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌル ヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌルヌル

シャッフルカード.... null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null

カードをディール:ヌル はカードをディール:ヌル はカードをディール:ヌル はカードをディール:ヌル はカードをディール:ヌル

+4

ですから、私たちはどこかに 'null'なのでを見つけるために、コードの200行を読みすることを期待... –

+3

してください[編集]あなたの質問nullを返すと、*(さ)された方法(複数可)を含むように*あなたのコードインデント**を修正してください。 –

+0

これらはすべてnullを戻しています。私は私の結果がどのようなものかを掲載します。 – Savage99

答えて

-1

はMYエラーを検出しました....

私にcards.javaファイルのデッキ...ダイヤモンドとスペードが間違った場所にありました....以下は修正された部分です。

for (int suit = card.DIAMOND; suit <= card.SPADE; suit++) 
     for (int rank = 1; rank <= 13; rank++) 
     deckOfCards[i++] = new card(suit, rank); 
関連する問題