Ich bekomme es auf biegen und brechen nicht hin diese Aufgabe zu lösen! Ich versuche mich seit mehreren Stunden an Punkt 2 und komme einfach nicht weiter! APIs dürfen nicht verwendet werden. Bitte um Hilfe! Anbei die Angabe: Danke im Voraus
Es mu ̈ssen folgende drei Methoden implementiert und in der main-Methode verwendet wer- den:
Eine Methode fu ̈r die Generierung der Zufallszahl. Die generierte Zufallszahl liegt im Intervall von [0, 200].
Eine Methode fu ̈r das Einlesen der Eingaben. Verwenden Sie, wie in der Vorlesung vorge- stellt, die Klasse Scanner, um die Daten von der Konsole einzulesen. Falsche Eingaben werden innerhalb der Methode abgefangen, bis ein korrekter int-Wert im angegebenen Intervall eingegeben wurde. Anschließend geben Sie den eingelesenen Wert zuru ̈ck.
Eine Methode, die eine Nachricht (String) fu ̈r die spielende Person auf der Konsole ausgeben kann. Es soll der System.out.println(...)-Aufruf gekapselt werden.
Sie ko ̈nnen weitere Methoden implementieren, falls dadurch das Programm u ̈bersichtlicher wird.
Nachfolgend wird der Spielablauf und der Umgang mit Sonderfa ̈llen beschrieben:
– Spielablauf: Eine spielende Person gibt eine Zahl im Intervall von [0, 200] ein (Ratever- such). Danach wird ein Hinweis auf der Konsole ausgegeben, ob die gesuchte Zahl gro ̈ßer oder kleiner als der Rateversuch ist. Zusa ̈tzlich wird noch in jeder Runde der spielenden Person auf der Konsole mitgeteilt, wie viele Rateversuche u ̈brig sind. Hat die spielende Person die gesuchte Zahl erraten, ist das Spiel beendet und das Spiel wurde gewonnen. Wurde die gesuchte Zahl nach 8 Rateversuchen nicht erraten, ist das Spiel beendet und die spielende Person hat verloren. Beides wird auf der Konsole mit einer entsprechenden Meldung angezeigt.
– Sonderfa ̈lle: Falsche Eingaben wie Fließkommazahlen oder Zeichen werden ignoriert und es geht kein Rateversuch verloren. Auch die Eingabe einer Zahl kleiner 0 oder gro ̈ßer 200 wird ignoriert. Die spielende Person wird immer mit einer Meldung auf der Konsole informiert, dass die Eingabe nicht gu ̈ltig ist und danach geht das Spiel weiter.
//random numberpublicstaticintgenerateRandomNumber(){Random rand =newRandom();return rand.nextInt(201);}//scannerpublicstaticintgetNumber(){Scanner sc =newScanner(System.in);if(int attempt >200|| attempt <0){//attempt soll eben sein, was im scannner eingegeben wird
sout ("Ihr Versuch befindet sich nicht in der richtigen Range");
sc.nextLine()/* jetzt verstehe ich schon mal nicht ganz was
"Falsche Eingaben werden innerhalb der Methode abgefangen,
bis ein korrekter int-Wert im angegebenen Intervall eingegeben wurde.
Anschließend geben Sie den eingelesenen Wert zuru ̈ck." bedeuten soll.
Zudem weiß ich nicht, wie man definiert, dass eben das, was man am scanner
eingibt der int attempt ist*/}}
Du erstellst erst einmal einen Scanner. Damit ist schon mal eine Zeile soweit richtig.
Aber was machst Du denn dann? Vielleicht formulierst Du es erst einmal, was Du genau machen willst? Wenn Du es sauber formuliert hast, dann fällt es Dir evtl. einfacher.
Im if kommt eine Bedingung - da prüfst Du also erst einmal etwas. Da wird keine Variable deklariert. Und in die Variable soll ja auch erst einmal eine Eingabe rein, oder? Ohne Eingabe macht es ja keinen Sinn, eine Eingabe zu prüfen
"nextLine" wird nicht das richtige sein das gibt dir einen String und keinen int.
Du willst ja prüfen ob es ein Int war was von der Tastatur kommt.
Wie wäre es denn da mit einer Schleife die solange läuft bis eine gültige Zahl im richtigen bereich eingegeben wird. Und bei einer ungültigen Eingabe eine Fehlermeldung ausgibt. Aber weiter in der schleife bleibt bis es passt.
Schaue in die Doku welche Methoden zum prüfen du der Eingabe vom Scanner hast.
hasNext() , hasNextInt(), nextInt() sind es wert genauer anzuschauen.