Не работает игра "виселица" на python tkinter

У меня не работает нормально игра "виселица" на python tkinter.

После нажатия на кнопку "играть снова" не работает отгадывание букв и победа.

import random
from tkinter import *


#Constant
Window_width=1200
Window_height=700
bg_colour='white'
# bg_colour=open('bgIMAGE.jpg')
lines_colour="black"
TXT_colour="black"
BTN_colour='white'
res_colour='red'
label_word=[]
btn_abc=[]
er=[]
find_let=[]
MARGIN=100

def game():
    def start_pos_man():
        line_1 = canvas.create_line(MARGIN, MARGIN, MARGIN, Window_height - MARGIN, width=4, fill=lines_colour)
        line_2 = canvas.create_line(MARGIN, MARGIN, Window_width // 3, MARGIN, width=4, fill=lines_colour)
        line_3 = canvas.create_line(Window_width // 3, MARGIN, Window_width // 3, MARGIN * 2, width=4, fill=lines_colour)


    def abc():
        shift_x = shift_y = 0
        count = 0

        for i in range(ord("А"), ord("Я") + 1):
            btn = Button(text=chr(i), bg=BTN_colour, foreground=TXT_colour, font="Arial",)
            btn.place(x=Window_height - MARGIN + shift_x, y=MARGIN * 4.5 - shift_y)
            btn.bind('<Button-1>', lambda event: check_abc(event, word))

            btn_abc.append(btn)

            shift_x += 50
            count += 1

            if (count == 8):
                shift_x = count = 0
                shift_y -= 50


    def start_word():  # перебираем и выбираем слово
        f = open('words', encoding='utf-8')
        count = 0

        for s in f:
            count += 1
        num_word = random.randint(1, count)
        word = ''
        count = 0
        f = open('words', encoding='utf-8')
        for s in f:
            count += 1

            if count == num_word:
                word = s[:len(s) - 1:]
        word = word.upper()
        # print(word)
        return word


    def start_pos_word(word):  # поле ввода
        shift = 0

        for i in range(len(word)):
            label_under = Label(window, text="___", bg=bg_colour, font='bold')
            label_under.place(x=Window_height - MARGIN + 1.1 + shift, y=MARGIN * 3)
            shift += 50
            label_word.append(label_under)


    def draw(lifes):  # hangman
        if (lifes == 6):
            head = canvas.create_oval(Window_width // 3 - 60, MARGIN * 1.5, Window_width // 3 + 60, MARGIN * 2.5,
                                      fill=lines_colour)
        elif (lifes == 5):
            body = canvas.create_line(Window_width // 3, MARGIN * 2.5, Window_width // 3, MARGIN * 4, width=4,
                                      fill=lines_colour)
        elif lifes == 4:
            hand_1 = canvas.create_line(Window_width // 3, MARGIN * 2.5, Window_width // 3 - 30, MARGIN * 3.5, width=4,
                                        fill=lines_colour)
        elif lifes == 3:
            hand_2 = canvas.create_line(Window_width // 3, MARGIN * 2.5, Window_width // 3 + 30, MARGIN * 3.5, width=4,
                                        fill=lines_colour)
        elif lifes == 2:
            leg_1 = canvas.create_line(Window_width // 3, MARGIN * 4, Window_width // 3 - 30, MARGIN * 5, width=4,
                                       fill=lines_colour)
        elif lifes == 1:
            leg_2 = canvas.create_line(Window_width // 3, MARGIN * 4, Window_width // 3 + 30, MARGIN * 5, width=4,
                                       fill=lines_colour)
            game_over('lose')


    def check_abc(event, word):
        count_abc = 0
        letter = event.widget['text']
        pos = []


        for i in range(len(word)):

            if (word[i] == letter):
                event.widget['bg'] = 'green'
                pos.append(i)

        if len(pos) != 0:

            for i in pos:
                label_word[i].config(text='{}'.format(word[i]), font='Arial 20')

            for i in label_word:
                if i['text'].isalpha():
                    count_abc += 1

            if count_abc == len(word):
                game_over('win')


        else:
            lifes = int(label_life.cget('text'))
            label_life.config(text='{}'.format(lifes - 1))
            event.widget['bg'] = 'red'

            if lifes == 0:
                game_over('lose')

            draw(lifes)
        pos=[]


    def game_over(status):
        def change1():
            win_window.destroy()
            window.destroy()

        def change11():
                win_window.destroy()
                window.destroy()
                game()
                start_pos_man()
                abc()
                word = start_word()
                start_pos_word(word)

        def change2():
            loose_window.destroy()
            window.destroy()
        def change22():
                loose_window.destroy()
                window.destroy()
                game()
                word = start_word()

                start_pos_word(word)


        if status == 'win':

            win_window = Tk()
            win_window.title("WIN")
            win_window.resizable(False, False)

            canvas_win = Canvas(win_window, bg=bg_colour, height=780, width=Window_width)
            canvas_win.place(x=0, y=0)

            canvas_win.create_text(canvas.winfo_width() / 2, canvas.winfo_height() / 2, font=("Futura PT Heave", 50),
                               text='ПОБЕДА!',fill=res_colour)  # winfo_width и winfo_height: текущая ширина и высота виджета
            canvas_win.create_text(Window_height - MARGIN, MARGIN * 3, font=("Futura PT Heave", 40), text=("слово: "+word),
                                     fill='black')
            close_button = Button(win_window, text="Завершить игру", bg=BTN_colour, foreground=TXT_colour, font="Arial", command=change1)
            close_button.place(x=400, y=MARGIN * 4.5)
            again_button = Button(win_window, text="Играть снова", bg=BTN_colour, foreground=TXT_colour, font="Arial",
                                  command=change11)
            again_button.place(x=600, y=MARGIN * 4.5)

            win_window.geometry("1200x780")

            win_window.mainloop()

        else:
            loose_window = Tk()
            loose_window.title("LOOSE")
            loose_window.resizable(False, False)

            canvas_loose = Canvas(loose_window, bg=bg_colour, height=780, width=Window_width)
            canvas_loose.place(x=0, y=0)

            canvas_loose.create_text(canvas.winfo_width() - 400, canvas.winfo_height() - 300,
                                     font=("Futura PT Heave", 50),
                                     text='ВЫ ПРОИГРАЛИ', fill=res_colour)
            canvas_loose.create_text(Window_height - MARGIN, MARGIN * 3, font=("Futura PT Heave", 40), text=("слово: "+word),
                                     fill='black')

            close_button = Button(loose_window,text="Завершить игру", bg=BTN_colour, foreground=TXT_colour, font="Arial", command = change2)
            close_button.place(x=400, y=MARGIN * 4.5)
            again_button = Button(loose_window, text="Играть снова", bg=BTN_colour, foreground=TXT_colour, font="Arial",
                                  command=change22)
            again_button.place(x=600, y=MARGIN * 4.5)


            loose_window.geometry("1200x780")

            loose_window.mainloop()


    window = Tk()
    window.title("HANGMAN")
    window.resizable(False, False)



    canvas = Canvas(window, bg=bg_colour, height=Window_height, width=Window_width)
    canvas.place(x=0, y=80)

    window.geometry("1200x780")

    lifes = 6
    label_text = Label(window, text="Жизни: ", font=("Futura PT Heave", 40), foreground=TXT_colour)
    label_text.place(x=930, y=10)
    label_life = Label(window, text='{}'.format(lifes), font=("Futura PT Heave", 40), foreground=TXT_colour)
    label_life.place(x=1110, y=10)



    start_pos_man()
    abc()
    word = start_word()
    start_pos_word(word)


    window.mainloop()

game()
word=''

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