コードを書き実行したのですが上手くいきません。
ハングマンのプログラムを作成していますが躓いております。
何が実行されて何が上手く実行されていないのか理解できておりません。
- ユーザーに1文字づつ入力していただき、その都度成功ならば残りの文字を入力していく。
- 失敗ならハングマンが進んでいき、一定回数が来たら失敗で、失敗メッセージを。
- ある単語(ここではhope)が入力されれば成功メッセージを。
というようなプログラムを組みたいのですが。
hopeの一文字でも入力されると成功メッセージが出てしまいます。
本来であれば____の中にその入力された適当な一文字が表示される予定です。
また、hopeでない文字が入力された場合は、ハングマンが進むだけにしたいのですが何故か成功メッセージが出てしまいます。
恐縮ですが、このコードの間違えている点を教えていただければ幸いです。
以下にコードを書きます。
def hangman(word):
wrong = 0
stages = ["",
"----------- ",
"| | ",
"| | ",
"| O ",
"| /|\ ",
"| / \ ",
"| ",
"| ",
"| ",
]
rletters = list(word)
board = ["__" * len(word)]
win = False
print("Welcome to MY GAME!")
while wrong < len(stages) - 1:
print("\n")
msg = "Guess a word I like that is a part of your name."
char = input(msg)
if char in rletters:
cind = rletters.index(char)
board[cind] = char
rletters[cind] = "$"
else:
wrong += 1
print((" ".join(board)))
e = wrong + 1
print("\n".join(stages[0: e]))
if "__" not in board:
print("Good! I know you know it.")
print(" ".join(board))
win = True
break
if not win:
print("\n".join(stages[0: wrong]))
print("Study more about yourself.lol It is {'hope'}?".format(word))
hangman("hope")