Печать угаданного письма - PullRequest
0 голосов
/ 16 июня 2020
import random

title = ("Guess the Word Title")
print(title.center(80))

Tuple = ()
Tuple = ("Spring", "Summer", "Autumn", "Winter")

TupleItem = random.choice(Tuple)

Item_len = len(TupleItem)
ItemAsteriks = ("*" * Item_len)
print("\n\n\n", ItemAsteriks.center(80), "\n\n\n")

response = "n"

while response == "n":
    response = input("Would you like to guess the word (y / n)? ")
    if response == "y":
        break
    letter = input("\nEnter a letter: ")
    if letter.upper() in TupleItem.upper():
        print("The letter ", letter, "is in the word!\n")

        new_message = ""
        for i in range(len(TupleItem)):
            if TupleItem[i].upper()==letter.upper():
                new_message += TupleItem[i]
            else:
                new_message += ItemAsteriks[i]
        ItemAskeriks = new_message
    else:
        print("The letter ", letter, "is not in the word!\n")

GuessedWord = input("\nGuess the word then: ")

if GuessedWord.upper() == TupleItem.upper():
    print("You guessed the right word. Congratz!")
else:
    print("You guessed the wrong word. The right word was:", TupleItem)

input("\n\nPress Enter to Exit. ")

Это то, что я придумал до сих пор. Если слово «Лето», а пользователь угадал букву «U», я хочу показать / обновить звездочки, например: * u ****. И так далее. Я пробовал несколько команд печати для l oop, но так и не понял.

1 Ответ

0 голосов
/ 16 июня 2020

Ну, я думаю, проблема в том, что всегда будет показывать только самое последнее письмо, а не предыдущее. Я бы инициализировал список строк, по одной для каждой буквы в слове, начиная с

guessed = ["*"] * len(TupleItem)

Затем при каждой догадке повторяйте реальное слово и заменяйте * записи на собственно угаданное письмо.

for k, ch in enumerate(TupleItem.upper()):
    if ch == letter.upper():
        guessed[k] = ch

Тогда вы можете просто

print("".join(guessed))

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