Zahlenratespiel
Sie sollen nun ein Zahlenratespiel näher analysieren, dem
folgender Quellcode zugrunde liegt:
public class
Zahlenratespiel
{
public void start()
{
Werkzeugkasten
werkzeug; // Bietet Methoden
für Eingabe und Zufall
werkzeug = new
Werkzeugkasten();
int
zufallsZahl; // Die Zahl, die wir
uns denken
zufallsZahl
= werkzeug.zufallsZahlHolen (1, 100);
System.out.println("Herzlich
willkommen beim Zahlenratespiel!\n");
System.out.println("Ich
denke mir eine Zahl zwischen 1 und 100.");
System.out.println("Du
hast 5 Versuche, sie zu erraten!");
int
tipp; // Hier kommt die Eingabe des
Benutzers rein
for
(int i=1; i<=5; i=i+1)
{
System.out.println("Dein
Tipp: ");
tipp
= werkzeug.intEingabeHolen(); // Jetzt
muss der Benutzer eingeben
if
(tipp == zufallsZahl)
{
System.out.println("Du
hast in " + i + " Versuchen die Zahl erraten!");
System.exit(0);
}
else
{
if
(zufallsZahl > tipp)
{
System.out.println("Meine
Zahl ist größer!");
}
else
{
System.out.println("Meine
Zahl ist kleiner!");
}
System.out.println("Du
hast noch " + (5 - i) + " Versuche.");
}
}
System.out.println("Die
Zahl war " + zufallsZahl + ".");
}
}
Betrachten Sie genau den Programmcode zum
Zahlenratespiel, analysieren
Sie seine Funktionsweise und testen Sie das Programm in BlueJ.
Nutzen Sie zum Testen das Projekt Zahlenratespiel ,
das Sie
Je nach Situation stellt Ihnen auch Ihre Lehrkraft das Projekt zur
Verfügung. |
Zeichnen Sie zu dem rot
markierten Bereich ein Struktogramm. Darin
dürfen keine Java-Befehle vorkommen! Verwenden Sie eigene
beschreibende Worte (siehe Beispiele im Java-Überblick)! |
Lösung
Das Programm gibt an einer
Stelle im Spiel aus "Sie haben noch 1 Versuche.". Beheben Sie diesen
Schönheitsfehler durch eine zusätzliche bedingte
Anweisung. |
Lösung
Ändern Sie die
Klasse Zahlenratespiel so ab, dass man als
Benutzer die Anzahl der Rateversuche und den Zahlenbereich festlegen
kann, und zwar ...
a) ... beim Aufruf der Methode start() , mit
drei Eingangsparametern: start(int versuche, int von, int
bis)
b) ... im Konstruktor der Klasse Zahlenratespiel
c) ... durch direkte Benutzereingabe während der Methode start()
unter Zuhilfenahme der Methode intEingabeHolen()
der Klasse
Werkzeugkasten
Speichern Sie Ihre Lösung jedesmal als neues Projekt. |
Lösung 4a
Lösung 4b
Lösung 4c
|