Игра "Виселица". Упрощение кода
Написал игру "Виселица". Что можно исправить в коде? А то мне кажется слишком большой для такого языка.
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, ' содержит что-то, кроме букв!')