【发布时间】:2019-11-05 01:29:13
【问题描述】:
下面是一个刽子手游戏的代码。到目前为止,一切都运行良好,我遇到的唯一麻烦是弄清楚当用户正确猜测时如何将带下划线的空格转换为正确的字母。我没有为它编写代码,正在寻求帮助。它目前所做的只是返回空白下划线,即使你猜对了一个数字
import random
responses = {'title': 'Welcome to Hangman the Game!', 'rules':'Once you guess \
wrong 6 times you lose. Using the same letter twice does not count as a guess.', \
'correct':'Well done, your guess is correct!', \
'incorrect':'Sorry, your guess is incorrect...', \
'win':'Well done, you win!', \
'lose':'Out of guesses. You lose.'}
words = ['cat', 'dog', 'work', 'school', 'game', 'one', 'hangman', 'apple',
'orange', 'list', 'words', 'bicycle', 'four', 'snowing', 'backpack',
'computer', 'house', 'water', 'plant', 'hour']
game = random.choice(words)
print(game) # just in for ease of programming
guesses = 0
letter = []
length = len(game)
numletter = game.replace(game, '_ '*length) # display number of letters
while guesses < 6:
print(numletter) # need to replace this with the code I will hopefully learn from this
user = input('Guess a letter here: ')
if user in game:
if user not in letter:
print(responses['correct'])
if user not in game:
if user not in letter:
print(responses['incorrect'])
guesses += 1
if user not in letter:
letter.append(user)
print('You have guessed these letters', letter)
else:
print('You have already guessed that letter, try again.')
if user == game:
print(responses['win'])
break
else:
print(responses['lose'])
这是我得到的一些输出
water
_ _ _ _ _
Guess a letter here: a
Well done, your guess is correct!
You have guessed these letters ['a']
_ _ _ _ _
Guess a letter here: w
Well done, your guess is correct!
You have guessed these letters ['a', 'w']
_ _ _ _ _
Guess a letter here: w
You have already guessed that letter, try again.
如您所见,空白保持不变]
【问题讨论】: