Игра "Виселица". Упрощение кода

Написал игру "Виселица". Что можно исправить в коде? А то мне кажется слишком большой для такого языка.

import re

regex = re.compile('^[a-zA-Zа-яА-ЯёЁ]+$')
main_flag = False

def viselica(str):
    lifes = 6
    flag_word = False
    flag = False
    game_word = '_' * len(word)
    letter = ''
    len_str = len(str)

    while flag == False:
        print('Осталось жизней: ', lifes, '\n')
        letter = input(' -- Введите букву: ')

        if( len(letter) == 1 and regex.search(letter) ):
            if (game_word.isalpha() == False and lifes > 0):
                for i in range(len_str):
                    if (str[i] == letter):
                        flag_word = True
                        if (i == 0):
                            game_word = letter + game_word[1:]
                        if (i == 1):
                            game_word = game_word[0] + letter + game_word[2:]
                        if (i > 1):
                            game_word = game_word[:i] + letter + game_word[i+1:]

                if ( flag_word == False and lifes > 0 ):
                    lifes -= 1
                    print('------------ \n Такой буквы нет! \n Вы потеряли одну жизнь \n Осталось', lifes, ' жизней \n', game_word, '\n------------')
                    print('\n\n\n\n\n')
                if ( flag_word == True ):
                    
                    flag_word = False
                    print('Такая буква есть!\n', game_word, '\n\n\n\n\n')
                
            if (game_word.isalpha() == True):
                flag = True
                print('Вы выиграли! Слово: ', game_word)
            if (lifes == 0):
                flag = True
                print('Вы проиграли! Слово: ', game_word)
        else:
            print('Ошибка! Вы ввели не букву!')
        

while main_flag == False:
    word = input('Введите слово: ')
    if (word.isalpha()):
        main_flag == True
        viselica(word)
    else:
        print(word, ' содержит что-то, кроме букв!')


Ответы (0 шт):