[英]Each time I go through a loop, how can I get the next item of a list to display
我正在編寫一個程序,它是一個劊子手游戲,除了如何顯示劊子手之外,所有東西都已關閉。 我不會在這里發布我的整個代碼,只是回答問題的要點。 每次用戶猜錯字母時,就會顯示這些人中的一個。 每次他們猜錯時,都會顯示列表中的下一個。 以下是劊子手名單:
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 次嘗試都錯了,我怎么能繼續顯示最后一個劊子手,而不會崩潰?
我會使用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
循環結束之前正確猜出了所有字母,會發生什么?
您可以保留一個變量,只要用戶錯過了一個問題,就會添加一個變量,例如:
words=['cat', 'dog', 'mouse']
misses = 0
word=random.choice(words).lower()
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:
print('Incorrect.')
misses += 1
print(hangmen[misses])
這將打印列表中具有變量未命中索引的項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.