Мой код - базовая игра палача. Моя проблема заключается в том, что мой пользовательский ввод продолжает получаться ненадежным, и я уверен, что это потому, что я использую неправильные циклы ...
Я смотрел часы видео и читал так много ранее заданных вопросов. Я пытался просто поиграть со всеми предложениями, которые я видел, и хотя некоторые из них работали как мой текущий код, это в конечном итоге привело к другой проблеме. Я буквально прошу помощи. Если вы посмотрите на мой код, вы увидите, что я объясняю себе все в мучительных деталях, когда я действительно понимаю, что я делаю.
#Word Puzzle Version 1
# Fill in the blank to guess the word.
import random, time
def main():
# display instructions
filename = 'instructions.txt'
mode = 'r'
file=open(filename,mode)
instructions=file.read()
print(instructions)
# display what is to be guessed
#import words file
filename2 = 'words.txt'
# Step 1 - Open the file
infile = open(filename2,mode)
# Step 2 - Read the file
content = infile.read()
# Step 3 - Strip the content of any leadning or trailing newline characters
content = content.strip()
# Step 4 - Additional clean up with splitlines function
all_words = content.splitlines()
# Randomly choose a word from list all_words
#I want only 1 word to be guessed
number_of_words = 1
#A sample of 1 word from my cleaned up list of words
word_list = random.sample(all_words,number_of_words)
# Use choice function from random module to choose sample from word list
answer = random.choice(word_list)
#Display word to be guessed
#Calculate the length of each word
Length = len(answer)
Underscores = (Length)*'_ '
#Prompt user to solve the puzzle
answer_so_far = 'The answer so far is '
#print('The answer so far is '+'_ '*(Length))
print(answer_so_far, Underscores)
#Prompt the player to fill in the blanks
Guess_a_letter = 'Guess a letter: '
guess =input(Guess_a_letter)
guess = guess.lower()
#If players guess in word replace the underscore
# Loop through the letters in the real word
for i in (answer):
if guess == i:
#print(answer_so_far, end = ' ')
print(guess, end = ' ')
elif guess != i:
print('_', end = ' ')
#Check if players guess is in the word
while guess:
if guess in answer:
print('\nGood job! You found the word '+(answer)+'.')
break
else:
print(answer_so_far,Underscores)
print('Not quite, the correct word was '+(answer)+'. Better luck next time.')
break
#End of game
#time.sleep(1.5)
input('Press enter to end the game.')
main ()
Фактический результат должен отображаться в правильном виде следующим образом:
Инструкции
Ответ пока _ _ _ _ _
Угадай письмо: a
Ответ пока _ _ _ a _
Хорошая работа! Вы нашли (случайное слово)!
Нажмите ввод, чтобы завершить игру.
при неправильном указании:
Инструкции
Ответ пока _ _ _ __ _
Угадай букву: a
Пока что ответ _ _ _ _ _
Не совсем. правильное слово было (случайное слово). Повезет в следующий раз.
Нажмите enter, чтобы завершить игру.
EDIT: для уточнения "wonky"