我尝试用我的代码做的是,我希望玩家有4次机会通过在该单词上输入一个数字来选择8个单词中的正确答案({{1}给这个词一个数字)如果玩家选择了正确的单词他/她将赢得和循环,否则玩家将不得不再次选择直到他/她失去机会。(我试过这个enumerate(words)
)我使用remainingGuess -=1
使其成为布尔值。我的问题是如何使我的循环工作,因为它目前已被打破,我不知道该怎么做。谢谢。
True
答案 0 :(得分:1)
available_words = random.sample(Names, 7)
而不是available_words = random.sample(Names, 8)
8个项目不够。
将while remainingGuess > 0 and False:
更改为while remainingGuess > 0:
,因为False会避免您循环到循环。
print(userNum)
if wordlist[userNum] == one:
win = True
print("You are Correct")
else:
print("You incorrect")
if win == true:
remainingGuess = 0
else:
remainingGuess -=1
仅在remainingGuess
时才递减wordlist[userNum] == one
。每次循环时都必须递减。如果你赢了,要打破循环,将remainingGuess
设置为0。
您没有致电Main()
将wordlist[userNum]
更改为available_words[userNum]
在初始化之前,您使用的是win
变量。在while循环之前添加win = False
。
我试图运行时发现你的代码充满了错误。这是固定版本:
import random
Names = ['AETHER', 'BADGED', 'BALDER', 'BANDED', 'BANTER', 'BARBER', 'BASHER'] #ect, etc
def wordlist(words):
for index, item in enumerate(words):
print(index, ") ", item, sep='')
available_words = random.sample(Names, 7)
one = random.choice(available_words)
print("Welcome to the Guess-The-Word Game.\nThe Password is one of these words:")
wordlist(available_words)
def Main():
remainingGuess = 4
win = False
while remainingGuess > 0:
wordlist(available_words)
print("Guesses remaining: ", remainingGuess)
userNum = int(input("Enter guess number between 0-7: "))
print(userNum)
if available_words[userNum] == one:
win = True
print("You are Correct")
else:
print("You incorrect")
if win == True:
remainingGuess = 0
else:
remainingGuess -= 1
Main()
答案 1 :(得分:0)
如果两个参数都是and
语句,则只返回True。因此,如果您键入and False
,它将永远不会运行。只需删除此部分