Здравствуйте! Писал код игры "виселицы" на python. Мне кажется он не очень. Как сделать код лучше? Вот он: from random import randint
words = ["python", "java", "javascript", "rust"] # Список слов
word_secret = words[randint(0, 3)] # Случайное слово
word = word_secret # Переменная для хранения неизменённого случайного слово
attempts = 5 # Попытки
letters = ["_" for _ in range(len(word_secret))] # зашифрованное слово
# Функция для обновления зашифрованного слова
def update_encrypted_word(letters_func, word_secret_func, letter_user_func):
letters_func.pop(word_secret_func.find(letter_user_func))
letters_func.insert(word_secret_func.find(letter_user_func), letter_user_func)
word_secret_func = (word_secret_func[:word_secret_func.find(letter_user_func)] + "_" + word_secret_func[word_secret_func.find(letter_user_func) + 1:])
return [letters_func, word_secret_func]
# Цикл будет работать пока пользователь не введёт все буквы слова
while "".join(letters) != word:
letter_user = input("\nВведите букву: ")
if letter_user in word_secret: # Есть ли в слове буква пользователя
letters, word_secret = update_encrypted_word(letters, word_secret, letter_user)[0], update_encrypted_word(letters, word_secret, letter_user)[1]
print(f"Вы угадали {word_secret.find(letter_user) + 1} букву!")
print("".join(letters))
else: # Если в слове нет буквы пользователя
attempts -= 1
print(f"\nУ вас осталось {attempts} попыток!")
if attempts == 0: # Проверка на 0 попыток
print("~У вас закончились попытки!~")
print("~Вы проиграли!~")
break
print(f'\nЗагаданное слово было - "{word}"!') # Выводим загаданное слово
words = ["python", "java", "javascript", "rust"] # Список слов
word_secret = words[randint(0, 3)] # Случайное слово
word = word_secret # Переменная для хранения неизменённого случайного слово
attempts = 5 # Попытки
letters = ["_" for _ in range(len(word_secret))] # зашифрованное слово
# Функция для обновления зашифрованного слова
def update_encrypted_word(letters_func, word_secret_func, letter_user_func):
letters_func.pop(word_secret_func.find(letter_user_func))
letters_func.insert(word_secret_func.find(letter_user_func), letter_user_func)
word_secret_func = (word_secret_func[:word_secret_func.find(letter_user_func)] + "_" + word_secret_func[word_secret_func.find(letter_user_func) + 1:])
return [letters_func, word_secret_func]
# Цикл будет работать пока пользователь не введёт все буквы слова
while "".join(letters) != word:
letter_user = input("\nВведите букву: ")
if letter_user in word_secret: # Есть ли в слове буква пользователя
letters, word_secret = update_encrypted_word(letters, word_secret, letter_user)[0], update_encrypted_word(letters, word_secret, letter_user)[1]
print(f"Вы угадали {word_secret.find(letter_user) + 1} букву!")
print("".join(letters))
else: # Если в слове нет буквы пользователя
attempts -= 1
print(f"\nУ вас осталось {attempts} попыток!")
if attempts == 0: # Проверка на 0 попыток
print("~У вас закончились попытки!~")
print("~Вы проиграли!~")
break
print(f'\nЗагаданное слово было - "{word}"!') # Выводим загаданное слово