2013-12-09 102 views
-1
public class BlackJackRules 
{ 
    Random generator = new Random(); 
    int c = 0; 
    String card1; 

    /* Creates a random number which turns into 
    * a string card(card1). 
    */ 

    public String getCard() 
    { 
     c = generator.nextInt()+14; 
     if(c == 1) 
      card1 = "Ace"; 
     else if(c == 2) 
      card1 = "Two"; 
     else if(c == 3) 
      card1 = "Three"; 
     else if(c == 4) 
      card1 = "Four"; 
     else if(c == 5) 
      card1 = "Five"; 
     else if(c == 6) 
      card1 = "Six"; 
     else if(c == 7) 
      card1 = "Seven"; 
     else if(c == 8) 
      card1 = "Eight"; 
     else if(c == 9) 
      card1 = "Nine"; 
     else if(c == 10) 
      card1 = "Ten"; 
     else if(c == 11) 
      card1 = "Jack"; 
     else if(c == 12) 
      card1 = "Queen"; 
     else if(c == 13) 
      card1 = "King"; 
     return card1; 
    } 
} 

,這裏是驅動程序....不明白爲什麼我的方法不工作?

public class BlackJack 
{ 
    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 
     String userStart = new String(); 
     String userQuit = new String(); 
     String card1 = new String(); 

     System.out.println("Would you like to play some BlackJack?"); 
     userStart = scan.next(); 
     if(userStart.equalsIgnoreCase("yes")) 
     { 
      System.out.println("Here we go..."); 
      while(userQuit.equalsIgnoreCase("yes")) 
      { 
       System.out.println("Your first card is a " + card1.getCard()); 
      } 
     } 
     else 
      System.out.println("Okay."); 
     } 
    } 
} 

我實在不明白它...我試圖重新安排我的代碼。我很高興參加高中的AP課程,並且正在爲方法概念而努力。謝謝你的幫助!

+2

_isn't working_是什麼意思? –

+0

請使用開關(c)'... – nhgrif

+0

請提供某種「所需輸出」和「實際輸出」。它不是在編譯?它是否拋出異常?它只是給出意想不到的輸出? – merlin2011

回答

3

您尚未創建BlackJackRules

的實例,這

String card1 = new String(); 

應該

BlackJackRules card1 = new BlackJackRules(); 

那麼這將工作

System.out.println("Your first card is a " + card1.getCard()); 

由於getCard()是在BlackJackRules類,你首先需要創建它的一個實例使用它的方法

而且在你的方法,你只想用這個

c = generator.nextInt(13) + 1 
+0

嘿謝謝你!是的,我會像人們評論的那樣去做。非常感謝幫助人! –

0

而不是

c = generator.nextInt()+14; 

你可能想要。

c = generator.nextInt(13) +1; 

書面即使它編譯和運行很可能不會產生所需的結果,因爲你將在全範圍內的32位整數來產生整數的代碼。

0

除了以前的答案:

  • 你BlackJackRules類似乎有一個額外的大括號的。不確定這是否特別重要,但無論如何它都會導致Eclipse投訴。
  • 你的main方法中的while循環將不會運行。 userQuit尚未給出值,因此您的equalsIgnoreCase將失敗 並且程序將結束。

第二點,最好是將該循環改爲do-while並添加一個提示,詢問用戶是否希望繪製另一張卡片。

相關問題