Python猜单词游戏错误

时间:2016-01-10 16:13:12

标签: python

我创造了一个猜词游戏,基本上当你运行它时,它会要求你输入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)

2 个答案:

答案 0 :(得分:1)

看起来在你的第二个If语句中,如果猜测错误,你的计数器只会减少。我假设你每次做出猜测时都需要你的计数器递减,无论是对还是错。

答案 1 :(得分:0)

我认为这一行有逻辑错误

function goodFunction(/* boolean */flagA) {
  flagA = typeof flagA !== "undefined" ? flagA : true;
  console.log("flagA is set to " + (flagA ? "true" : "false"));
}

将其更改为:

for letter in GeneratedWords:
    if letter in GeneratedWords:

或者:

for letter in GeneratedWords:
    if (guess == letter):