Lektion 6 von 12

Projekt: Zahlenraten

Dein erstes Spiel in Python: Zahlenraten mit random, while und break, Schritt für Schritt gebaut, direkt im Browser spielbar.

  • Etwa 25 Minuten
  • 2 Übungen mit Lösung
  • Läuft im Browser

Dein erstes richtiges Programm

Zeit für dein erstes richtiges Programm. Der Computer denkt sich eine Zahl zwischen 1 und 100 aus, du rätst, und er sagt dir nach jedem Versuch „zu groß“ oder „zu klein“. Alles, was du dafür brauchst, kennst du schon: Variablen, if/elif, eine while-Schleife und break. Neu ist nur eine Sache.

Baustein 1: Der Zufall

Python bringt fertige Werkzeugkästen mit, sogenannte Module. Mit import random holst du dir den Zufalls-Werkzeugkasten, und random.randint(1, 100) liefert eine zufällige ganze Zahl von 1 bis 100. Führ das mehrmals aus, es kommt (fast) jedes Mal etwas anderes:

zufall.py

Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.

Baustein 2: Ein einzelner Rateversuch

Bevor die Schleife dazukommt, bau die Logik für einen Versuch. Das ist ein sauberer Weg, Programme zu entwickeln: erst ein kleines Stück bauen und testen, dann erweitern.

rateversuch.py

Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.

Baustein 3: Die Schleife macht das Spiel

Jetzt kommt der Trick: Wir packen den Rateversuch in eine while True-Schleife. Die läuft absichtlich endlos, und erst bei einem Treffer bricht break aus. Dazu zählt eine Variable die Versuche mit. Das ist das komplette Spiel, spiel eine Runde:

zahlenraten.py

Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.

Übungen

Erst selbst versuchen, dann die Lösung aufklappen.

Übung 6.1

Baue das Spiel so um, dass der Spieler nur 7 Versuche hat. Nach dem 7. Fehlversuch endet das Spiel mit „Verloren! Die Zahl war ...“. Tipp: Ersetze while True durch while versuche < 7 und gib die Verloren-Meldung nach der Schleife aus, falls kein Treffer kam.

uebung_6_1.py

Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.

Musterlösung anzeigen
import random

geheimzahl = random.randint(1, 100)
versuche = 0
gewonnen = False

while versuche < 7:
    tipp = int(input("Dein Tipp: "))
    versuche = versuche + 1

    if tipp < geheimzahl:
        print("Zu klein!")
    elif tipp > geheimzahl:
        print("Zu gross!")
    else:
        print(f"Treffer nach {versuche} Versuchen!")
        gewonnen = True
        break

if not gewonnen:
    print(f"Verloren! Die Zahl war {geheimzahl}.")
Übung 6.2

Gib dem Spieler am Ende eine Bewertung: bis 5 Versuche „Stark!“, bis 8 „Solide.“, ab 9 „Da geht noch was.“ Du brauchst nur ein if/elif/else nach dem Treffer.

Musterlösung anzeigen
# Nach dem "Treffer"-print, vor dem break:
if versuche <= 5:
    print("Stark!")
elif versuche <= 8:
    print("Solide.")
else:
    print("Da geht noch was.")