2017-05-03 5 views
0

私はこのコーディングに少し新しくなりました。誰も私にこのことを最初の選択肢に戻す方法を教えてもらえますか?先生は簡単なRPGゲームを作ってほしいと思っていました。最初のメニューに戻ることができませんでした。ありがとうございました。RPGゲームの "バック"ループ

package looptest; 
    import java.io.*; 

public class LoopTest { 
    public static BufferedReader br; 


    public static void main(String[] args) throws IOException{ 
     br = new BufferedReader (new InputStreamReader(System.in)); 

     // i want loop it back here when you press the back botton 
     System.out.println("What do you want to do?\n" 
       + "[1] Examine\n" 
       + "[2] Speak\n" 
       + "[3] Move"); 
     short choice = Short.parseShort(br.readLine()); 

     while(choice !=3)  

      switch (choice){ 
      case 1: 
       System.out.println("What do you want to examine?\n" 
         + "[1] Bed\n" 
         + "[2] Closet\n" 
         + "[3] Vase\n" 
         + "[4] back"); 
       short choice1 = Short.parseShort(br.readLine()); 
       switch (choice1){ 
        case 1: 
         System.out.println("What a nice bed"); 
         break; 
        case 2: 
         System.out.println("Better not touce the elder's things."); 
         break; 
        case 3: 
         System.out.println("This vase might break if i touched it "); 
         break; 
        case 4: 
        // loops back to the first menu 
         break; 
       } 

       break; 
      case 2: 
       System.out.println("Who do you want to speak to?\n" 
         + "[1] Maiden\n" 
         + "[2] Elder\n" 
         + "[3] Guard\n" 
         + "[4] Back"); 
       short choice2 = Short.parseShort(br.readLine()); 
       switch (choice2){ 
        case 1: 
         System.out.println("Hello there how are you feeling?\n" 
           + "you falling must be very painful i hope you get well soon."); 
         break; 
        case 2: 
         System.out.println("Shoku is waiting for you in his tent go to him he will teach\n" 
           + "you on how to fight. You will need it on your adventure."); 
         break; 
        case 3: 
         System.out.println("....*grunts* "); 
         break; 
        case 4: 
         // loops nack to the first menu 
         break; 
       } 
       break; 
      case 3: 
       break;    
     } 
         System.out.println("Where to you want to go?\n" 
         + "[1] Outside\n" 
         + "[2] Stay inside"); 
       short choice3 = Short.parseShort(br.readLine()); 
       if (choice3 == 1){ 
        System.out.println("Okey lets go "); 
       } 

    } 

} 
+0

これを別の方法に分解してください。長くて巻いているので、メニューのループをどこに追加するのが苦労しています。 – markspace

答えて

0

ゲームロジックを保持するすべてのものを別個の方法に入れることができます。数4が入力された後、あなたは唯一のreturnでこのメソッドを終了する必要がありますし、もう一度起動これにつながるれ、再びメソッドを呼び出します。

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class RPG { 

    private BufferedReader br; 

    private RPG() { 
     br = new BufferedReader(new InputStreamReader(System.in)); 
    } 

    public static void main(String[] args) throws IOException { 
     RPG rpg = new RPG(); 
     rpg.run(); 
    } 

    private void run() throws IOException { 
     System.out.println("What do you want to do?\n" 
       + "[1] Examine\n" 
       + "[2] Speak\n" 
       + "[3] Move"); 
     short choice = Short.parseShort(br.readLine()); 

     while (choice != 3) { 
      switch (choice) { 
       case 1: 
        System.out.println("What do you want to examine?\n" 
          + "[1] Bed\n" 
          + "[2] Closet\n" 
          + "[3] Vase\n" 
          + "[4] back"); 
        short choice1 = Short.parseShort(br.readLine()); 
        switch (choice1) { 
         case 1: 
          System.out.println("What a nice bed"); 
          break; 
         case 2: 
          System.out.println("Better not touce the elder's things."); 
          break; 
         case 3: 
          System.out.println("This vase might break if i touched it "); 
          break; 
         case 4: 
          run(); 
          return; 
        } 
        break; 
       case 2: 
        System.out.println("Who do you want to speak to?\n" 
          + "[1] Maiden\n" 
          + "[2] Elder\n" 
          + "[3] Guard\n" 
          + "[4] Back"); 
        short choice2 = Short.parseShort(br.readLine()); 
        switch (choice2) { 
         case 1: 
          System.out.println("Hello there how are you feeling?\n" 
            + "you falling must be very painful i hope you get well soon."); 
          break; 
         case 2: 
          System.out.println("Shoku is waiting for you in his tent go to him he will teach\n" 
            + "you on how to fight. You will need it on your adventure."); 
          break; 
         case 3: 
          System.out.println("....*grunts* "); 
          break; 
         case 4: 
          run(); 
          return; 
        } 
        break; 
      } 
     } 
     System.out.println("Where to you want to go?\n" 
       + "[1] Outside\n" 
       + "[2] Stay inside"); 
     short choice3 = Short.parseShort(br.readLine()); 

     if (choice3 == 1) { 
      System.out.println("Okey lets go "); 
     } 
    } 
} 

ところで:メインスイッチ-文のケースを到達できないので、このスイッチを実装する必要はありません。このスイッチは、選択肢が3に等しくないときに呼び出すことができます。

0

すべての選択肢にすべてwhile -loopを入れます。基本的にそれぞれの選択肢は新しいwhile -loopです。このよう

while (choice != 4) { 
    // Write the choices 
    // Read the input from user and move on to next, unless the choice 
    // is to exit (either the game or "go back") 

    switch (choice) { 
    case 0: 
     // meh 
     break; 
    case 1: 
     // meh 
    case 2: 
     while (choice != 1) { 
      // Write the new choices 
      // Read the input.......... 

      switch (choice) { 
      case 0: 
       while (choice != 0) { 
        // We can keep doing this, and every time we go 
        // "further in", we can go back by pressing e.g. 4, or 
        // whatever option is "back". 
        // When going back, we'll go back to previous loop, 
        // and it'll re-print the choices 
       } 
       break; 
      case 1: 
       System.out.println("back!"); 
      } 
     } 
     break; 
    case 3: 
     // meh 
    case 4: 
     System.out.println("back"); 
     break; 
    } 
} 

私はそれが理にかなって願っています。

関連する問題