我的刽子手游戏问题

时间:2009-05-23 21:25:17

标签: python python-3.x

我正在尝试学习python而我正在尝试一个刽子手游戏。但是,当我尝试将用户的猜测与单词进行比较时,它不起作用。我错过了什么?

import sys
import codecs
import random

if __name__ == '__main__':
    try:
        wordlist = codecs.open("words.txt", "r")
    except Exception as ex:
        print (ex)
        print ("\n**Could not open file!**\n")
        sys.exit(0)

    rand = int(random.random()*5 + 1)
    i = 0

    for word in wordlist:
        i+=1
        if i == rand:
            print (word, end = '')
            break

    wordlist.close()

    guess = input("Guess a letter: ")
    print (guess) #for testing purposes

    for letters in word:
        if guess == letters:
            print ("Yessssh")

#guessing part and user interface here

2 个答案:

答案 0 :(得分:8)

在“for word in wordlist”循环中,每个单词都会以换行符结尾。尝试添加word = word.strip()作为下一行。

顺便说一句,您的上一个循环可以替换为:

if guess in word:
    print ("Yessssh")

额外提示:添加“调试打印”时,使用repr通常是个好主意(特别是在处理字符串时)。例如,您的行:

print (guess) #for testing purposes

如果你写的话可能会更有用:

print (repr(guess)) #for testing purposes

这样,如果guess中有奇怪的字符,您将在调试输出中更容易地看到它们。

答案 1 :(得分:0)

这就是我为我的刽子手游戏所做的事情:

     for x in range(0, len(secretword)):
           if letter == secretword[x]:
                for x in range(len(secretword)):
                    if secretword[x] in letter:
                         hiddenletter = hiddenletter[:x] + secretword[x] +hiddenletter[x+1:]

     for letter in hiddenletter:
          print(letter, end=' ')

secretword是用户试图猜测的隐藏单词。 隐藏字母包含单词中“_”的数量:ie hiddenletter =“_”* len(secretword)

用正确猜到的字母替换空白,然后在正确的位置显示带有字母的下划线 我尽了最大努力......