2016-05-11 4 views
1

У меня есть два разных класса: TextBasedGame и IntroductionChoices. IntroductionChices принимает все решения, в то время как TextBasedGame в основном просто печатает историю (она единственная с основным методом).Завершить игру по отдельному методу

Я хочу знать, как сделать игру КОНЕЦ, если пользователь делает неправильный выбор. В этом случае, если пользователь вводит «Снять группу», отображается сообщение, и игра заканчивается. В моем случае, в основном методе, он просто продолжается. Как остановить игру?

Я думал, что мог бы как-нибудь, в основном методе, проверить, вернется ли возврат из IntroductionChoicesis "GAME OVER" и закончить игру там.

//Snippet from the main method 
    System.out.println("What do you do?");  

    System.out.println(choice.choice1()); 

    System.out.println("Next part..."); 

    //Method choice1 from IntroductionChoices 
    public static String choice1() 
    { 
     Scanner scan = new Scanner(System.in); 

     System.out.println("Warn her of her shadows."); 
     System.out.println("Take down the group."); 

     String decision = scan.next(); 

     if (decision.equalsIgnoreCase("right decision")) 
     { 
      System.out.println("some text"); 
     return "some more text in continuation to continue story in main"; 
     } 

     else if (decision.equalsIgnoreCase("wrong decision")) 
     { 
      System.out.println("You creep towards the men, hoping to surprise them from behind."); 

      System.out.println("Consequence"); 

      return "GAME OVER"; 
     } 

     else 
     { 
      return "That is not a valid response."; 
     } 
} 
+0

Я думаю, что вы хотите, чтобы показать часть петли на 'main' метода. Вы можете проверить возвращенный String (или другое значение, например перечисление) в основном методе. – KevinO

+0

вы могли просто просто «выбросить» «Исключение» в свой метод 'choice()' и поймать его в своем главном –

+1

Не можете ли вы просто проверить, что было возвращено? 'Выбор строки = choice1(); if (choice.equals («GAME OVER»)) return; ' – Bohemian

ответ

1
System.exit(0) 


else if (decision.equalsIgnoreCase("wrong decision")) 
{ 
    System.out.println("You creep towards the men, hoping to surprise them from behind."); 

    System.out.println("Consequence"); 

    System.exit(0); 

Вам не нужно будет ничего возвращать, он закончит программу.

ИЛИ

Дайте пользователю возможность:

  1. Начать новую игру-> начать новую игру

  2. Quit ->System.exit(0)

I 'd также использовать переключатель для проверки пользовательские параметры, вы менее склонны ошибаться, и он может быть более быстрым и быстрым, когда параметры начинают накапливаться.

Вы можете создать перечисление опций или использовать final ints со значимыми именами, чтобы ваш код был проще ориентироваться и затем соответствовал пользовательским параметрам.

From java the docs.

+0

Что делать, если« завершение игры »должно позволить начать еще одну игру? – Bohemian

+0

@Bohemian. Не могли бы вы просто попросить пользователя ввести (они хотят начать новую игру), если нет, System.exit, иначе сбросить переменные и вызвать стартовую функцию (которая в любом случае должна очищать переменные)? –

+0

@Bohemian затем вернитесь к коммутатору, который предлагает системный выход из перезапуска. будет редактировать –

Смежные вопросы