Hangman
Verfasst: Mittwoch 8. Januar 2014, 15:43
Ich habe mich mal ein einem Hangman-Spiel versucht und habe ein paar Fehler. Die Variable "fehler" wird z.B. falsch gezählt, sicherlich weil die for-Schleife jeden Buchstaben prüft. Mir fällt leider nur keine andere Möglichkeit ein. Auch die Funktion "erneut spielen" funktioniert noch nicht. Es wäre nett, wenn mir einer hilft.
Design-Ratschläge wären auch gut. 
Code: Alles auswählen
import random
import sys
def wortWahl():
auswahl = random.randint(0, 4)
global wort
if auswahl == 1:
neu = ['M','A','U','S']
wort.extend(neu)
elif auswahl == 2:
neu = ['T','A','S','T','A','T','U','R']
wort.extend(neu)
elif auswahl == 3:
neu = ['D','R','U','C','K','E','R']
wort.extend(neu)
elif auswahl == 0:
neu = ['M','A','C']
wort.extend(neu)
else:
neu = ['B','U','C','H']
wort.extend(neu)
def linie():
print("------------------------------------------------------------ ##")
def aufgabe():
print("\n************************************************************ ##\n")
def erneutSpielen():
linie()
erneut = raw_input("Erneut spielen? (j/n) ")
if erneut == "n" or erneut == "no" or erneut == "nein":
sys.exit()
wort = []
wortWahl()
strich = ['_'] * len(wort)
gesucht = len(wort)
spielen = True
fehler = 0
print("Galgenraten Version 1")
while spielen == True:
while gesucht > 0:
aufgabe()
print strich
aufgabe()
eingabe = raw_input("Buchstaben eingeben: ").upper()
i = 0
for x in wort:
# ------ Eingabe wird mit jedem Buchstaben des Liste verglichen ------ #
if eingabe == x:
linie()
print("Richtig")
strich[i] = wort[i]
gesucht -= 1
if gesucht == 0:
break
if eingabe != 0:
fehler += 1
if fehler > len(wort)*len(wort):
print("Du wurdest gehaengt!")
print("Gesucht war: ", wort)
sys.exit()
i += 1
else:
linie()
print("Gewonnen!")
print("Anzahl der Fehler: ", fehler)
print("Gesucht war: ", wort)
erneutSpielen()
