Проблема с моей игрой в палача - PullRequest
0 голосов
/ 24 мая 2009

Я пытаюсь выучить 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 ]

8 голосов
/ 24 мая 2009

В вашем цикле "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 есть странные символы, их легче увидеть в выходных данных отладки.

0 голосов
/ 20 октября 2013

Вот что я сделал для своей игры в палач:

     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=' ')

секретное слово - это скрытое слово, которое пользователь пытается угадать. скрытая буква содержит количество «_» в слове: то есть hiddenletter = «_» * len (secretword)

это заменяет пропуски правильно угаданными буквами, а затем показывает подчеркивания с буквами в нужных местах я сделал все возможное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...