import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
public class GuessingGame{
int zufallszahl; // int Variable für die Zufallszahl
int eingabe; // int Variable für die Eingabe des Nutzers
int zaehler; // int Variable, die die Versuche mitzählt
boolean erraten = false; // Boolean/Wahrheitsvariable für die Schleifenwiederholung, solange
// noch nicht die richtige Zahl eingegeben wurde.
public static void main (String[] args){ //Main-Methode: Hier beginnt dein Programm
new GuessingGame(); // Ruft den Konstruktor auf.
}
public GuessingGame(){ // Konstruktor der Klasse.
zaehler = 1; // Zählervariable wird mit 1 initialisiert.
generateRandomNum(); // Ruft die Methode "generateRandomNum()" auf.
System.out.println("Bitte geben Sie ihre Zahl ein: ");
while(!erraten){ /* Solange 'erraten' auf false steht(was es ist, bis die richtige Zahl eingegeben wird,
* solange soll diese Schleife wiederholt ausgeführt werden.
* Die Schreibweise "!erraten" ist äquivalent zur Schreibweise "erraten == false".
*/
readInput(); // Ruft die Methode "readInput()" auf, um wiederholt die Nutzereingabe einzulesen.
compare(); // Vergleicht in jedem Schleifendurchgang die neue Eingabe des Nutzers mit der Zufallszahl.
}
}
public void generateRandomNum(){
System.out.println("***Zufallszahl wurde erzeugt***");
Random ran = new Random();
zufallszahl = ran.nextInt(101);/* Hier wird die Zufallszahl erzeugt und in der globalen int Variable
* "zufallsszahl" gespeichert. '101', weil der höchste Wert der übergebenen Zahl exklusiv
* behandelt wird. "ran.nextInt(100)" würde also nur eine Zufallszahl zwischen 0 und 99
* ermitteln.
*/
}
public void readInput(){ /* Hier wird die Eingabe des Nutzers eingelesen.
* Schenke dem "try/catch" garkeine Beachtung, auch die Art und Weise,
* wie die Eingabe eingelesen wird, ist jetzt nicht so wichtig, das muss man nach
* 1, 2 Wochen Java noch nicht verstehen.
*/
try{
eingabe = Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
}catch(Exception e){
e.printStackTrace();
}
}
public void compare(){ /* Diese Methode vergleich immer die neu eingegebene Zahl des Nutzers mit der
* Zufallszahl.
* Bei jeder falschen Eingabe, wird ein Hinweis ausgegeben, ob die eingegebene
* Zahl zu groß oder zu klein war. Außerdem wird der Zähler für die Versuche
* immer um 1 hochgezählt.
*/
if (eingabe < zufallszahl){
System.out.println("Ihre Zahl ist zu klein!");
zaehler++; // Zähler wird um 1 erhöht. Äquivalent zu "zähler = zähler + 1" oder "zähler += 1"
}
else if (eingabe > zufallszahl){
System.out.println("Ihre Zahl ist zu groß!");
zaehler++;
}
else{
System.out.println("Sie haben richtig geraten! :)\nSie benötigten dafür " + zaehler + " Versuche.");
zaehler++;
erraten = true; /* "erraten" wird auf "true" gesetzt, sodass sich die Schleife weiter oben
* nicht mehr wiederholt.
*/
}
}
}