2016-05-11 16 views
1

Ich habe zwei verschiedene Klassen: TextBasedGame und EinführungChoices. IntroductionChoices trifft alle Entscheidungen, während TextBasedGame grundsätzlich nur die Story druckt (es ist die mit der Hauptmethode).Beende das Spiel von einer separaten Methode

Was ich wissen möchte ist, wie man das Spiel END macht, wenn der Benutzer eine falsche Wahl trifft. Wenn der Benutzer in diesem Fall "Take down the group." Eingibt, wird eine Nachricht angezeigt und das Spiel endet. In meinem Fall läuft es in der Hauptmethode einfach weiter. Wie kann ich das Spiel stoppen?

Ich dachte, ich könnte irgendwie, in der Hauptmethode, überprüfen, ob Rückkehr von EinführungChoices "GAME OVER" und das Spiel dort beenden.

//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

Ich denke, man kann die Schleife Teil der 'main' Methode zeigen will. Sie könnten die zurückgegebene Zeichenfolge (oder einen anderen Wert, z. B. eine Aufzählung) in der Hauptmethode überprüfen. – KevinO

+0

Sie könnten einfach eine 'Exception' in Ihre' choice() 'Methode werfen und sie in Ihrer Hauptdatei abfangen. –

+1

Können Sie nicht einfach testen, was zurückgegeben wurde? 'String Auswahl = Auswahl1(); if (choice.equals ("GAME OVER")) return; ' – Bohemian

Antwort

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); 

Sie werden nichts zurückgeben müssen, wird es das Programm beenden.

ODER

Geben Sie dem Benutzer eine Option:

  1. starten neue Spiele-> ein neues Spiel starten

  2. Quit ->System.exit(0)

I würde auch einen Schalter benutzen, um durch zu überprüfen Bei den Benutzeroptionen sind Sie weniger lügnerisch, um Fehler zu machen, und es kann schneller und schneller sein, wenn sich die Optionen ansammeln.

Sie können eine Aufzählung von Optionen erstellen oder End-Ints mit aussagekräftigen Namen verwenden, damit der Code einfacher zu navigieren und mit den Benutzeroptionen übereinstimmt.

From java the docs.

+0

Was ist, wenn" das Spiel beenden "es erlauben sollte, ein anderes Spiel zu beginnen? – Bohemian

+0

@Bohemian, Könntest du nicht einfach Benutzer nach Eingabe fragen (wollen sie ein neues Spiel starten), wenn nein, System.exit, sonst Variablen zurücksetzen und die Startfunktion aufrufen (die sowieso Variablen löschen sollte)? –

+0

@Bohemian dann gehen Sie zurück zu einem Schalter, der System-Ausgang des Neustarts bietet. wird bearbeiten –

Verwandte Themen