Zurück zur Zentralseite "Aufwendigere Algorithmen"

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 + ".");
  }
}

Arbeitsauftrag 1

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.

Arbeitsauftrag 2

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

Arbeitsauftrag 3

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

Arbeitsauftrag 4

Ä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


Zurück zur Zentralseite "Aufwendigere Algorithmen"