Проблема с моей игрой в палача
-
05-09-2019 - |
Вопрос
Я пытаюсь выучить 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
Решение
В вашем "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
, вам будет легче увидеть их в вашем отладочном выводе.
Другие советы
Это то, что я сделал для своей игры "палач":
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=' ')
секретное слово - это скрытое слово, которое пользователь пытается угадать.скрытая буква содержит количество "_" в слове:т. е.скрытое письмо = " _ " * len(секретное слово)
это заменяет пробелы правильно угаданными буквами, а затем показывает подчеркивания с буквами в нужных местах я сделал все, что мог...