2011-12-07 9 views
-4

私はJavaプログラム(クラス内のクラスを使用しています)をしていて、ゲームメニューの一点に止まっています。ゲームが「ケース2」で終了した後、終了する代わりにメニューに戻るようにします。 DieGameから終了ステートメントを削除しました。他のクラスには明らかに終了ステートメントがありません。お気軽にお気軽にお問い合わせください。ゲームの終了後にメニューを表示する方法

import java.io.IOException; 
import java.util.Scanner; 

public class Game1 { 
    public static void main(String[] args) throws IOException { 
    Scanner in = new Scanner (System.in); 
    DieGame game = new DieGame(); 
    Date2 date = new Date2(); 
    Time time = new Time(); 
    int gameMenuChoice; 

    do { 
     System.out.println("\nEnter player information: Press 1 "); 
     System.out.println("Play the game: Press 2 "); 
     System.out.println("Update top player information: Press 3 "); 
     System.out.println("Display top player: Press 4 "); 
     System.out.println("Quit: Press 5 "); 
     System.out.print ("Enter choice: "); 

     gameMenuChoice = in.nextInt(); 

     switch (gameMenuChoice) { 
     case 1: game.playerName(); 
      date.setYear(); 
      date.setMonths(); 
      date.setDay(); 
      time.setHours(); 
      time.setMinutes(); 
      time.setSeconds(); 
      time.timeOfDayCode(); 
      break; 

     case 2: 
      game.playGame(); 
      break; 

     case 3: 
     case 4: 
      game.displayName(); 
      date.displayDate(); 
      time.displayTime(); 
      break; 

     case 5: 
      System.out.print("\nThank you for playing..Goodbye"); 
      System.exit(0); 
      break; 

     default:System.err.print("PLEASE ENTER A NUMBER BETWEEN 1-5\n"); 
     } 
    } while (gameMenuChoice != 5); 
    } 
} 

import java.util.*; 

public class DieGame { 

    private String playername; 
    private int pot; 

    public DieGame() { 
     playername = new String(); 
    } 

    public String playerName() { 

     Scanner in = new Scanner (System.in); 
     System.out.println("\nEnter your name: "); 
     playername = in.nextLine(); 

     return playername;} 




    public void playGame() { 

    Scanner input = new Scanner (System.in); 
    Random randomNumbers = new Random(); 


    int pot = 100; 
    int bet = 1;  
    int die1, die2; 
    int sum; 

    while(bet != 0) { 
     System.out.print("\nCurrent pot is $" + pot + " enter your bet amount (0 to quit):$"); 
     bet = input.nextInt(); 

     if(bet == 0){ 
      System.out.print("\nYou end the game with $" + pot); 
      } 

     else { 
      while (bet > pot || bet <0){ 
       if (bet > pot){ 
        System.err.print("Invalid wager. Please enter new bet:$"); 
        bet = input.nextInt(); } 

        else if (bet < 0){ 
         System.err.print("Invalid wager. Please enter new bet:$"); 
         bet = input.nextInt();} 
      } 


      die1 = randomNumbers.nextInt(6) + 1; // first die 
      die2 = randomNumbers.nextInt(6) + 1; // second die 

      sum = die1 +die2; //sum of die values 

      System.out.printf("You rolled %d and %d " , die1, die2); 

      if(die1 == die2){ 
       pot = (bet*2) + pot; 
       System.out.println("\nYou win double!!"); 
      } 

      else if(sum <= 5 || sum == 10 || sum == 12){ 
       System.out.println("\nYou stay even!"); 
      } 

      else if(sum == 7 || sum == 11){ 
       pot = pot + bet; 
       System.out.println("\nYou win!"); 
      } 

      else if(sum == 6 || sum == 8 || sum == 9){ 
       pot = pot - bet; 
       System.out.println("\nYou lose!"); 
      } 

      if (pot == 0){ 
       System.out.print("\nYou end the game with $0"); 

      } 

     } 
    } 
} 
    public void displayName() { 
     System.out.println("\nTop player is: " + playername +" with a score of:$" + pot); 
     } 

} // end class DieGame1 
+0

ええと...あなたがしたときに 'System.exit(0)'を呼び出さずに、メニューに戻るためのコードを書いてください。 –

+0

私はDieGameからexit文を削除し、他のクラスは明らかにexit文を持っていないと気づいたかどうか分かりません。 – PrgmRNoob

+1

あなたは本当にここに質問がありません。コードを書き続け、具体的な質問に戻ります。 –

答えて

0

とき」、あなたは失敗したものを指定していないが、私の推測では、右

gameMenuChoice = in.nextInt(); 

後、あなたがそうでなければ

in.nextLine(); 

を追加すべきであるということですもう一度ループに入るでしょう。残りは\nですあなたの新しい番号の代わりにスキャナで読むことができます。新しい番号はスキャナですが、次のスロットには\nが続きます。

関連する問題