Ein frei kopier- und anpassbares Lehrmittel von eduskript.org

Ein Ratespiel entwickeln mit while

Im folgenden Beispiel entwickeln wir ein kleines Ratespiel. Der Computer denkt sich eine Zahl zwischen 1 und 100 aus, und der Spieler muss sie erraten. Der Computer gibt dem Spieler Hinweise, ob die geratene Zahl zu hoch oder zu niedrig ist.

Pseudocode

Die Idee etwas genauer in Pseudocode gefasst:

Zufallszahl zwischen 1 und 100 ziehen
Solange die Zahl nicht erraten wurde
    Eingabe abfragen
    Wenn die Zahl zu hoch ist:
        Hinweis geben: "Zu hoch!"
    Wenn die Zahl zu niedrig ist:
        Hinweis geben: "Zu niedrig!"
Hinweis geben: "Gratuliere!"

Zufallszahlen ziehen

Um eine Zufallszahl zu ziehen, verwenden wir die Funktion randint aus dem Modul random. Diese Funktion zieht eine ganze Zahl zwischen zwei Werten (inklusive der beiden Werte). Wir importieren das Modul mit dem Befehl import random.

import random
# Zufallszahl zwischen 1 und 100
zahl = random.randint(1, 100)
print(zahl)

Input abfragen

Um den Spieler nach einer Zahl zu fragen, verwenden wir die Funktion input. Diese Funktion gibt den eingegebenen Text als String zurück. Um ihn in eine Ganzzahl umzuwandeln, verwenden wir die Funktion int.

# Eingabe abfragen
eingabe = input("Gib eine Zahl zwischen 1 und 100 ein: ")
# Eingabe von Zeichenkette/String in Ganzzahl/Integer umwandeln
zahl = int(eingabe)
print(zahl)

Ihre Lösung

PythonLoading editor…
# Ihr Code

Erklärvideo

Mögliche Lösung
import random

# Generiere eine Zufallszahl zwischen 1 und 100
geheimzahl = random.randint(1, 100)

# Variablen für das Spiel initialisieren
versuchsrunde = 0
geratete_zahl = -1

# Begrüssung und Spielerklärung
print("Willkommen zum Zahlenratespiel!")
print("Ich habe mir eine Zahl zwischen 1 und 100 ausgedacht.")

# Solange die Zahl nicht erraten wurde, weiterspielen
while geratete_zahl != geheimzahl:
    eingabe = input("Rate eine Zahl zwischen 1 und 100: ")
    geratete_zahl = int(eingabe)
    versuchsrunde += 1

    # Prüfen, ob die geratene Zahl korrekt ist
    if geratete_zahl < geheimzahl:
        print("Zu niedrig! Versuch es mit einer höheren Zahl.")
    elif geratete_zahl > geheimzahl:
        print("Zu hoch! Versuch es mit einer niedrigeren Zahl.")

# Wenn die Zahl erraten wurde, gratulieren
print("Gratuliere! Du hast die Zahl", geheimzahl, "in", versuchsrunde, "Versuchen erraten!")