Bottom-up Funktionen
Funktionen
def show():
pass
def is_valid(inp):
return True
def eingabe():
pass
def auswerten(valid_inp):
pass
def gewonnen():
return False
def game_over():
pass
def play():
pass
Funktionskörper
for buchstabe in gesucht:
if buchstabe not in gefunden:
return False
return True
if valid_inp in gesucht:
gefunden.append(valid_inp)
else:
falsch_geraten.append(valid_inp)
buchstabe = input('Buchstabe? ')
while not is_valid(buchstabe):
buchstabe = input('Buchstabe? ')
return buchstabe.lower()
print('Falsche Buchstaben:', falsch_geraten)
for buchstabe in gesucht:
if buchstabe in gefunden:
print(buchstabe, end=' ')
else:
print('_', end=' ')
print('')
Variablen
# Variablen
gesucht = 'test'
gefunden = []
falsch_geraten = []
Dateiname
EF-Informatik/exercises/hangman.py
-
Ordnen Sie die vorhandenen Funktionskörper den richtigen Funktionsdefinitionen zu und fügen Sie die Variablen ganz oben im Skript ein.
-
Wo werden die verschiedenen Variablen verwendet? Was wird darin gespeichert?
-
Kommentieren Sie die Funktionen. Was machen Sie?
-
Bei Eingaben: Was für Parameter werden erwartet?
-
Bei Rückgabewerten: Was wird zurückgegeben
-
-
Machen Sie einen ersten Commit
-
Implementieren Sie die Funktion
play
gemäss dem Top-down Entwurf -
Implementieren Sie die Funktion
game_over
. Die Funktion gibtTrue
zurück, falls mehr als 10 mal falsch geraten wurde oder falls das Spiel gewonnen wurde. -
Das Spiel funktioniert 🥳 Doch was soll passieren, wenn mehr als ein Buchstabe oder eine Zahl eingegeben wird? Setzen Sie diese Richtlinien in der Funktionen
is_valid
um. Folgender Link könnte hilfreich sein -
Commit & Push
-
⭐ Generieren Sie zufällige Wörter: 👉 Zufällige Wörter
-
⭐ Zeigen Sie ASCII-Bilder für den Spielstand an: 👉 ASCII-Bilder
-
Markieren Sie die Aufgabe als erledigt.
Sobald man verloren hat, soll man gefragt werden, ob man erneut spielen möchte.
Weiterspielen
1) Neues Wort setzen (siehe Kapitel Zufällige Wörter generieren)
2) Spielstände zurücksetzen
3) Wieder spielen
Programm beenden
mit dem Befehl
exit()
das ganze Programm sofort beenden
⭐ Zufällige Wörter generieren
Um zufällige, deutsche Wörter zu generieren, kann man die Bibliothek zufallsworte installieren, indem im Python-Terminal von VS Code folgender Befehl eingegeben wird:
pip3 install zufallsworte
Anschliessend kann wie folgt ein zufälliges Wort abgefragt werden:
import zufallsworte as zufall
wort = zufall.zufallswoerter(1)[0] # gibt ein Zufallswort zurück
⭐ Hangman ASCII-Bilder
HANGMANS_RAW = ''' 18 Zeichen ergeben ein Bild...
__________ __________ __________ __________ __________ __________ __________ __________ __________
| | |/ |/ | |/ | |/ | |/ | |/ | |/ | |/ |
| | | | | O | O | O | O | O | O
| | | | | | | | -| | -| | -|- | -|-
| | | | | | | | \ | \ | / \
| | | | | | | | | | GAME OVER
_________ _|_______ _|_______ _|_______ _|_______ _|_______ _|_______ _|_______ _|_______ _|_______ _|_______
___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___ ___/ \___
'''.split('\n')[1:-1] # ohne erste und letzte Zeile
# enthält 11 ASCII-Bilder, für jeden Spiel-Zustand einen
HANGMANS = ['\n'.join([line[i : i + 18] for line in HANGMANS_RAW]) for i in range(0, 11 * 18, 18)]
def get_hangman(nr):
'''
nr: int values from 0 to 10
'''
return HANGMANS[nr]
print(get_hangman(6))
Hangman