我创建了一个猜单词游戏,基本上当你运行它时,它会要求你输入3个单词,你有10个生命来尝试和猜测。但我有一些问题,循环不会结束,有些句子不断重复,我不知道如何保存隐藏的单词,所以它会保存到下一个字母中。如果有人能帮助我,我将非常感激。
这是代码:
mport re
import sys
import random
FirstWord = input("Enter your first word: ")
if not re.match("^[a-z]*$", FirstWord):
print ("Sorry Only non capital letters are allowed.")
sys.exit()
SecondWord = input("Enter your Second word: ")
if not re.match("^[a-z]*$", SecondWord):
print ("Sorry Only letters are allowed.")
sys.exit()
ThirdWord = input("Enter your Third word: ")
if not re.match("^[a-z]*$", ThirdWord):
print ("Sorry Only letters are allowed.")
sys.exit()
Words = [FirstWord,SecondWord,ThirdWord]
try:
fh = open("/Users/naomi/Documents/Vocabulary.txt","a")
except IOError as e:
print("File does not exist or error when opening")
exit()
else:
fh.write (FirstWord)
fh.write (SecondWord)
fh.write (ThirdWord)
fh.close()
GeneratedWord = random.choice(Words)
hidden = '_ ' * len(GeneratedWord)
print ()
print ("Word: ",hidden)
count =10
while count >=1 :
guess = input("Take a guess ")
if len(guess) != 1:
print ("Only one letter can be entered at a time!")
elif guess not in 'abcdefghijklmnopqrstuvwxyz':
print ("Only letters are excepted!")
for letter in GeneratedWord:
if letter in GeneratedWord:
show = GeneratedWord.index(guess)
unhidden = hidden[:show*2] + guess + hidden[show*2+1:]
print ("Guess is correct!")
else:
count = count-1
print ("Your guess was wrong")
print()
print(unhidden)
在您的第二个If语句中,只有在猜测错误的情况下,计数器才会递减。我假设每次他们做出猜测时,无论是对是错,你都需要计数器递减。
我认为这一行有一个逻辑错误
for letter in GeneratedWords:
if letter in GeneratedWords:
更改为:
for letter in GeneratedWords:
if (guess == letter):
或者:
if (guess in GeneratedWords):