2017-05-01 4 views
0

Ich habe Probleme mit dieser Aufgabe, die mir gegeben wurde (High School). Es ist ein Zahlen-Ratespiel und ich habe das meiste schon runtergeholt, aber er möchte, dass wir eine Reihe von Zahlen auf die Konsole legen. Ein Beispiel für die Ausgabe wäre:Nummer Guessing Programm Problem Java

untere Grenze eingeben: 4

Geben Sie obere Grenze: 10

usw., im Grunde den spezifischen Zahlenbereich wählen Sie den Computer wollen zur Auswahl. Ich konnte nur in einem festgelegten Bereich (1-1000) codieren, da ich nicht weiß, wie ich das machen soll, was er will. Hier ist mein Code:

import java.util.Scanner; 


public class Game { 
    public static void main(String[] args) { 
     int randomNumber; 
     randomNumber = (int) (Math.random() * 999 + 1);   
     Scanner keyboard = new Scanner(System.in); 
     int guess; 
do { 
      System.out.print("Enter a guess (1-1000): "); 
      guess = keyboard.nextInt(); 

    if (guess == randomNumber) 
    System.out.println("Your guess is correct. Congratulations!"); 
    else if (guess < randomNumber) 
     System.out.println("Your guess is smaller than the secret number."); 
    else if (guess > randomNumber) 
System.out.println("Your guess is greater than the secret number."); 
     } while (guess != randomNumber); 
    } 

}

Wenn Sie es versuchen, es ist auch wirklich schwer, trotzdem zu spielen. Ich würde mich über Hilfe freuen, danke!

+4

Was denken Sie dieser Ausdruck tut möchte: '(int) (Math.random() * 999 + 1) '? Wie würdest du es ändern, um einen anderen Bereich zu bekommen? – Henry

Antwort

6

Für Zufallszahl in Bereich, haben Sie zwei Möglichkeiten:

Random rand = new Random(); 
// nextInt is normally exclusive of the top value, 
// so add 1 to make it inclusive 
int randomNum = rand.nextInt((max - min) + 1) + min; 

Oder in Java 1.7 oder höher:

int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1); 
+0

Sie haben mich dazu geschlagen. Ich hatte so ziemlich die gleiche Lösung, aber du hast zuerst gepostet.): Ich stimme trotzdem hoch, weil deine Antwort richtig ist. – CodingNinja

+0

Danke, dass du dir die Zeit genommen hast, mir zu helfen! –

0

Wenn Sie den Benutzer wollen, sind um den Bereich einstellen, dass Sie benötigen implementieren eine weitere Zeile in dem Sie den Benutzer für den Bereich fragen

Scanner min= new Scanner(System.in); und Scanner max = new Scanner(System.in);

dann in dieser Zeile des Codes randomNumber = (int) (Math.random() * 999 + 1); Sie jetzt den Bereich einstellen können Sie mit der Benutzereingabe random.nextInt(max - min + 1) + min

+0

Danke ich schätze es! –

0
import java.util.Scanner; 
public class Game { 
public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("enter minimum"); 
    int min= keyboard.nextInt(); 
    System.out.println("enter maximum"); 
    int max= keyboard.nextInt(); 
    int randomNumber= (int) (Math.random()* max + min); 
    int guess; 
    do { 
    System.out.print("Enter a guess (1-1000): "); 
    guess = keyboard.nextInt(); 

    if (guess == randomNumber) 
     System.out.println("Your guess is correct. Congratulations!"); 
    else if (guess < randomNumber) 
     System.out.println("Your guess is smaller than the secret number."); 
    else if (guess > randomNumber) 
     System.out.println("Your guess is greater than the secret number."); 
    } while (guess != randomNumber); 
    } 
} 
+0

Dank Ihnen auch, Sie sind alle sehr hilfreich! –

+0

Sie sind herzlich willkommen! – CrazyGal