Versuchen, ein Spiel namens hangman
in Python zu erstellen. Ich bin weit gekommen, aber die "Kern" -Funktionalität ist fehlgeschlagen.Hangman in Python - Ersetzen Sie mehrere Zeichen in einer einzigen Zeichenfolge basierend auf Index Python
Ich habe alle Teile weggelassen, die für diese Frage irrelevant sind.
Hier kommt es:
picked = ['yaaayyy']
length = len(picked)
dashed = "-" * length
guessed = picked.replace(picked, dashed)
while tries != -1:
input = raw_input("Try a letter: ")
if input in picked:
print "Correct letter!"
found = [i for i, x in enumerate(picked) if x == input]
for item in found:
guessed = guessed[:item] + input + guessed[i+1:]
print guessed
Auf dieses Skript aufrufen, Python erstellt eine Variable mit dem Namen guessed
mit 7 Striche -------
Es fordert den Benutzer auf einen Brief und wenn der Brief korrekt ist, wird es die -
ersetzen mit dem richtigen Buchstaben. Aber nicht die vorherigen Buchstaben behalten.
Das Wort erraten werden soll yaaayyy
Ausgabe von Code:
Word is 7 characters:
-------
Try a letter: a
Correct letter!
-aaa
Try a letter: y
Correct letter!
yyyy
Ziel:
Word is 7 characters:
-------
Try a letter: a
Correct letter!
-aaa---
Try a letter: y
Correct letter!
yaaayyy
Ich denke 'erraten [i + 1:]' 'sollte [item + 1:] erraten werden'. – smarx
es funktioniert ... nur Gott verdammt. Vielen Dank! – user721121
_ "Nach dem Aufruf dieses Skripts fragt python [...] den Benutzer nach einem Buchstaben" _. Seltsam, das macht das auf meiner Maschine nicht. Ich bekomme nur 'AttributError: 'Liste' Objekt hat kein Attribut 'ersetzen' in Zeile 5. – Kevin