Ich arbeite ein einfaches Hangman Spiel in Python auf dem Schreiben von dem, was ich weiß, so weit (ich tue Lernen Python the Hard Way) und so weit ich habe dies:Hangman in Python: haben Linien ersetzt werden?
from sys import argv
import random
script_name, dict_file = argv
hang_list = open(dict_file).read().splitlines()
hang_list = filter(None, hang_list)
word = random.choice(hang_list)
guesses = ''
def compare_words():
global guesses
new_word = ''
for char in word:
if char in guesses:
new_word += char
else:
new_word += "_"
return new_word
def test_letter():
global guesses
letter = raw_input("Guess a letter: ")
guesses += letter
new_word = compare_words()
print "\nCurrent guesses: %s" % guesses
print "%s\n\n" % new_word
if new_word == word:
print "You won!"
else:
test_letter()
test_letter()
Ich habe noch zu implementieren Sie das Scoring-System (Stück Kuchen), aber ich habe ein Problem mit dem Layout. Wie Sie sehen können, wird dies "Aktuelle Vermutungen:" und das neue Wort jedes Mal drucken; jedoch, was ich will, ist vier Zeilen, die wie aussehen:
Guess a letter:
Guesses: abczy
__c__b_
Und haben diese drei Zeilen zu aktualisieren. Allerdings habe ich Probleme herauszufinden, wie man den Druck stdout ersetzen kann. Ich glaube, ich muss das \r
Escape-Zeichen verwenden, aber ich habe versucht, das an verschiedenen Stellen, aber kann es nicht zur Arbeit bringen. Also, wie soll ich das ändern, um es zu ersetzen? Ich würde es vorziehen, nicht nur zu löschen, da es dann immer noch etwas unordentlich macht; Ich möchte nur ersetzen, was da ist. Vielen Dank!
möglich duplizieren von [Python Progress Bar] (http://stackoverflow.com/questions/3160699/python-progress-bar) – tom
Müssen Sie aus irgendeinem Grund stdout verwenden (einschließlich nur um es zu lernen) oder können Sie benutze einfach einen Systemaufruf zu 'os.system (" clear ")' oder 'os.system (" cls ")'? Für nur drei Zeilen und eine Benutzereingabe ist dies normalerweise einfacher als stdout – JGreenwell
Ich glaube, dass Sie nicht ersetzen können, was auf dem Bildschirm mit Python ist. Sie können jedoch 'print '\ n' * 100 'drucken und dann das ganze mit den Änderungen neu drucken. [Verwandte] (http://stackoverflow.com/questions/5426546/in-python-how-to-change-text-after-its-printed) –