我正在编写一个程序,该程序是子手的游戏,除了显示display子手外,其他所有内容都没有。我不会在这里发布整个代码,而只是回答问题的要点。每次用户猜错字母时,都会显示其中一个。每当他们猜错了,列表中的下一个就会显示出来。这是hangmen的列表:
hangmen=[
'''____________________
| /
| /
|/
|
|
|
____|________________''',
'''____________________
| / |
| / (_)
|/
|
|
|
____|________________''',
'''____________________
| / |
| / (_)
|/ |
| |
|
|
___|________________''',
'''____________________
| / |
| / (_)
|/ /|\
| / | \
|
|
___|________________''',
'''____________________
| / |
| / (_)
|/ /|\
| / | \
| / \
| / \
___|________________''']
这是到目前为止我的系统中正确/不正确的字母,非常非常简单
words=['cat', 'dog', 'mouse']
word=random.choice(words).lower()
attempts = 7
for i in attempts:
guess=input("Guess a letter: ")
if guess in word:
print('Yup, that letter is in the word.')
else:
print('Incorrect.')
底部的else应该是显示行刑门的位置。每当用户猜错时,如何显示下一个子手?另外,由于有7次尝试而只有5个行话,如果用户猜测所有7次尝试都错了而又没有崩溃,我如何继续显示最后一个行话?
答案 0 :(得分:2)
我会使用iter()
words=['cat', 'dog', 'mouse']
word=random.choice(words).lower()
lasthangman = hangmen[len(hangmen)-1]
hangmen = iter(hangmen)
attempts = 7
for i in range(attempts):
guess=input("Guess a letter: ")
if guess in word:
print('Yup, that letter is in the word.')
else:
try:
print(next(hangmen))
except StopIteration:
print(lasthangman)
每次猜错字母都会在hangmen中打印下一个hangman值,但是如果我们用完了hangmen,它将继续打印最后一个hangman。请注意,这仍然是不完整的:如果我在for
循环结束之前正确猜出所有字母会怎样?
答案 1 :(得分:1)
您可以保留一个变量,只要用户错过一个问题,该变量就会添加一个变量,例如:
words=['cat', 'dog', 'mouse']
misses = 0
word=random.choice(words).lower()
attempts = 7
for i in attempts:
guess=input("Guess a letter: ")
if guess in word:
print('Yup, that letter is in the word.')
else:
print('Incorrect.')
misses += 1
attempts -= 1
print(hangmen[misses])
这将打印列表中具有未命中变量索引的项目