This is an old revision of the document!
Zahlenraten: Wiederholungen mit while
- Bestimmen Sie im Kopf eine zufällige natürliche Zahl zwischen 1 und 100.
- Ihr Nachbar soll die Zahl erraten. Sie dürfen nur sagen, ob die gesuchte Zahl grösser oder kleiner ist, oder die Zahl gefunden wurde.
- In wie vielen Vesuchen kann die Zahl garantiert erraten werden?
Programmskizze
Wir machen eine Übersicht der folgenden Elemente:
- Welche Werte müssen gespeichert werden, wie sollen die Variablen heisen?
- Wie ist genau der Ablauf vom Programm?
- Was geschieht genau einmal am Anfang?
- Welche Schritte werden wiederholt?
- Was passiert am Schluss?
Zufallszahlen
from random import randrange # Funktion randrange importieren wurfel = "" for i in range(50): wurfel += "%d " % randrange(1,7) # Zufallszahl von 1 bis und mit 6 print(wurfel)
while-loop
Bei einem for-loop sind die Anzahl Wiederholungen zu Beginn der Schleife festgelegt.
Beim Rate-Spiel muss geraten werden (d.h. wiederholt), bis die Zahl gefunden wurde. In Python könnte das wie folgt aussehen:
gefunden = False # Die Zahl ist noch nicht gefunden while not gefunden: # Solange nicht gefunden, wiederholen # Tu # was (hier muss Code stehen, so meldet das Programm einen Fehler wegen leerer Schlaufe
Skelett für das Rate-Spiel
grenze = 100 zahl = 42 # Hier eine Zufallszahl mit randrange zwischen 1 und granze bestimmen gefunden = False # Zahl schon erraten? versuche = 0 # Anzahl Versuche while not gefunden: # Anzahl versuche um eins Erhöhen. # Benutzer soll raten raten = inputInt("Versuch %d: Zahl zwischen 1 und %d erraten:" % (versuche, grenze)) # Zahl gefunden? Also entsprechende Ausgabe, die Variable 'gefunden' auf True setzen # Sonst Ausgabe, ob zu gross oder zu klein # Ende des Programms print("Die Zahl wurde in %d Versuchen erraten!" % versuche)