2016-04-20 15 views
0

ich ein paar Probleme habe,beenden und ein Programm von Benutzereingaben Neustart

  1. ich Fragen habe mein Programm bekommen, um tatsächlich zu beenden.
  2. Ich kann nicht herausfinden, wenn ich den Benutzer auffordern, wieder zu spielen, wie man ein neues Spiel einleitet.

Jede Anleitung würde geschätzt werden.

Dank

import java.util.*; 

public class HiLowGuessingGame { 


public static void main(String[] args) { 

    // Creates a random number generator 
    Random random= new Random(); 
    // For getting input from the user 
    Scanner sc = new Scanner(System.in); 

    int number = random.nextInt(100); 
    int guess = +1; 

    //Counts the number of guesses 
    int guesscount = 0; 
    guesscount ++; 

    //Allows user to quit the game 
    String input; 
    int quit = 0; 

    String playagain; 
     String y="y"; 
     String n="n"; 



    // Prompts user for their next guess 
    System.out.println("Enter a guess from 1 to 100, Enter 0 to quit");   


    // Loop until the user guesses correctly 
    while (true){ 
    // Reads the next guess 
     guess = sc.nextInt(); 
    //If guess it to low or high 
     if (guess == quit){ 
     System.out.println("Game Over!");} 
     else if (guess < number){ 
     System.out.println("Guess is too low, please try again"); 
     guesscount ++; } 
     else if(guess > number){ 
     System.out.println("Guess is too high, please try again"); 
     guesscount ++; } 

     // Correct guess and number of guesses 
     else { 
     System.out.println("Your guess is correct = " + number + "\n" +"Number of Guesses = " +guesscount); 

     while (true) { 
      // Play again? 
      boolean isplayagain = true; 
      while (true) { 
       System.out.println("play another game?(y/n)"); 
       String playagainResponse = sc.next(); 
       if (playagainResponse.equalsIgnoreCase("y")) { 
        System.out.println("Enter a guess from 1 to 100, Enter 0 to quit"); 
        guess = sc.nextInt(); 
        break; 
       } else if (playagainResponse.equalsIgnoreCase("n")) { 
        System.out.println("Goodbye"); 
        isplayagain = false; 
        break; 
       } 
      } 
      if (!isplayagain) { 
       break; 
       } 
      } 
     } 
     } 
    } 
} 

Antwort

0

ich Ihren Code lief, und ich bemerkte, dass Sie break-Anweisungen verwenden, um Schleifen den von verlassen, aber Sie nie aus den äußersten for-Schleife brechen, so dass das Spiel eigentlich nie endet .

In diesem Fall würde ich jedoch empfehlen, keine Pause zu verwenden und System.exit (0) zu verwenden, wodurch das Spiel normal beendet wird. Ich füge unten einen Referenzlink hinzu. Dies sollte Ihr Problem des Spiels nicht beenden.

Was Ihr anderes Problem angeht, bin ich mir nicht sicher, was Sie meinen. Meinst du, dass es ein neues Spiel nicht richtig startet? Die Zufallszahl wird nur am Anfang des Programms ausgegeben. Wenn also ein neues Spiel gestartet wird, bleibt die Zufallszahl gleich. Außerdem wird der Schätzwert bei einem neuen Spiel nicht zurückgesetzt. Ich würde einfach den ganzen Code einfügen, der die Variablen in der if-Anweisung zurücksetzt, die für das Starten eines neuen Spiels verantwortlich sind.

Viel Glück!

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#exit(int)

0

ich Ihr Programm ein wenig verändert zu tun, was Sie wollen. Wenn ich bekomme, was Sie versuchen zu tun, denke ich, dass dies der Code dafür ist.

import java.util.*; 

public class HiLowGuessingGame { 

public static void main(String[] args) { 

    // Creates a random number generator 
    Random random= new Random(); 
    // For getting input from the user 
    Scanner sc = new Scanner(System.in); 

    int number = random.nextInt(100); 
    int guess = +1; 

    //Counts the number of guesses 
    int guesscount = 0; 
    guesscount ++; 

    //Allows user to quit the game 
    String input; 
    int quit = 0; 

    String playagain; 
     String y="y"; 
     String n="n"; 

     boolean isplayagain = false; 

    // Prompts user for their next guess 
    System.out.println("Enter a guess from 1 to 100, Enter 0 to quit");   


    // Loop until the user guesses correctly 
    while (true){ 
    // Reads the next guess 
     guess = sc.nextInt(); 
    //If guess it to low or high 
     if (guess == quit){ 
     System.out.println("Game Over!"); 
     break;} 

     else if (guess < number){ 
     System.out.println("Guess is too low, please try again"); 
     guesscount ++; } 
     else if(guess > number){ 
     System.out.println("Guess is too high, please try again"); 
     guesscount ++; } 

     // Correct guess and number of guesses 
     else { 
     System.out.println("Your guess is correct = " + number + "\n" +"Number of Guesses = " +guesscount); 

     // while (true) { 
      // Play again? 

      while (true) { 
       System.out.println("play another game?(y/n)"); 
       String playagainResponse = sc.next(); 
       if (playagainResponse.equalsIgnoreCase("y")) { 
        System.out.println("New game starts now!");     
        isplayagain=true; 
        break; 
       } else if (playagainResponse.equalsIgnoreCase("n")) { 
        System.out.println("Goodbye"); 
        isplayagain = false; 
        break; 
       } 
      } 
      if (!isplayagain)break;//cause of the program to not end if user gives n 
     } 
     if(isplayagain){ 
      number = random.nextInt(100); 
      guesscount=0;      
      System.out.println("Enter a guess from 1 to 100, Enter 0 to quit"); 
      isplayagain=false;} 

     } 
    } 
} 
Verwandte Themen