Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Grid_Destory() Not Working
#1
Hi All,

I have the below code. Basically what the program does is, the computer chooses a number and the users role is to try and guess the number, they have 3 tries, if they don't do it within the three the game ends. I have it so that 3 heart pictures appear and everytime you get one wrong a heart disappears. Except when youlose your last life, the final heart does not disappear, why?

import tkinter as tk
from tkinter import *
import random
import time
from PIL import ImageTk,Image


window_4 = tk.Tk()

window_4.title("Game")

random_num = random.randint(1, 9)
print(random_num)
player_choice = 0
global lives
lives = 3
print ("You are starting with " + str(lives) + " lives")

def click_1():

    global lives
    player_choice=1
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_2():

    global lives
    player_choice=2
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_3():

    global lives
    player_choice=3
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_4():

    global lives
    player_choice=4
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_5():

    global lives
    player_choice=5
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()
            
def click_6():

    global lives
    player_choice=6
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_7():

    global lives
    player_choice=7
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_8():

    global lives
    player_choice=8
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()

def click_9():

    global lives
    player_choice=9
    if player_choice == random_num:
        print("Correct Guess - Well Done")
        time.sleep(1)
        print ("You had " + str(lives) + " lives left")
        time.sleep(1)
        print("The game will now terminate")
        time.sleep(3)
        window_4.destroy()
    else:
        lives = lives - 1
        if lives == 2:
            heart_3.grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 1:
            heart_2 .grid_forget()
            print ("You have " + str(lives) + " lives left")
        elif lives == 0:
            heart_1.grid_forget()
            print ("GAME OVER, you have run out of your 3 lives! - Thanks for playing")
            time.sleep(3)
            window_4.destroy()
    
label_instructions = tk.Label(text="The computer has chosen a number, your job is to correctly guess the number. You only have 3 tries, Good Luck!")
label_instructions.grid(row=0, column = 2)

game_button_1 = tk.Button(text="1", height=1, width=2, command=click_1)
game_button_1.grid(row=1, column = 1)

game_button_2 = tk.Button(text="2", height=1, width=2, command=click_2)
game_button_2.grid(row=1, column = 3)

game_button_3 = tk.Button(text="3", height=1, width=2, command=click_3)
game_button_3.grid(row=1, column = 5)

clear_label_1=tk.Label(text=" ")
clear_label_1.grid(row=2, column=1)

game_button_4 = tk.Button(text="4", height=1, width=2, command=click_4)
game_button_4.grid(row=3, column = 1)

game_button_5 = tk.Button(text="5", height=1, width=2, command=click_5)
game_button_5.grid(row=3, column = 3)

game_button_6 = tk.Button(text="6", height=1, width=2, command=click_6)
game_button_6.grid(row=3, column = 5)

clear_label_2=tk.Label(text=" ")
clear_label_2.grid(row=4, column=1)

game_button_7 = tk.Button(text="7", height=1, width=2, command=click_7)
game_button_7.grid(row=5, column = 1)

game_button_8 = tk.Button(text="8", height=1, width=2, command=click_8)
game_button_8.grid(row=5, column = 3)

game_button_9 = tk.Button(text="9", height=1, width=2, command=click_9)
game_button_9.grid(row=5, column = 5)


heart_1 = Canvas(window_4, width = 300, height = 300)  
heart_1.grid(row=6, column=2)
img_1 = ImageTk.PhotoImage(Image.open("D:\Work\School\ComputerScience\Code\Other\pic_1.png"))  
heart_1.create_image(20, 20, anchor=NW, image=img_1) 

heart_2 = Canvas(window_4, width = 300, height = 300)  
heart_2.grid(row=6, column=3)
img_2 = ImageTk.PhotoImage(Image.open("D:\Work\School\ComputerScience\Code\Other\pic_2.png"))  
heart_2.create_image(20, 20, anchor=NW, image=img_2)

heart_3 = Canvas(window_4, width = 300, height = 300)  
heart_3.grid(row=6, column=4)
img_3 = ImageTk.PhotoImage(Image.open("D:\Work\School\ComputerScience\Code\Other\pic_3.png"))  
heart_3.create_image(20, 20, anchor=NW, image=img_3) 

window_4.mainloop()
Reply


Messages In This Thread
Grid_Destory() Not Working - by finndude - Mar-03-2021, 06:53 PM
RE: Grid_Destory() Not Working - by bowlofred - Mar-03-2021, 09:18 PM
RE: Grid_Destory() Not Working - by finndude - Mar-04-2021, 09:43 AM
RE: Grid_Destory() Not Working - by deanhystad - Mar-04-2021, 02:05 PM
RE: Grid_Destory() Not Working - by finndude - Mar-04-2021, 02:18 PM
RE: Grid_Destory() Not Working - by deanhystad - Mar-04-2021, 03:21 PM
RE: Grid_Destory() Not Working - by finndude - Mar-04-2021, 05:11 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020