Mar-04-2021, 02:00 PM
Hi All,
I have the below code. Basically, the computer picks a number and the user's job is to guess the number, they have three tries. Every time they guess incorrectly they lose a life and the picture of the heart should disappear. However the first two disappear. But when it gets to heart_1 that does not disappear. Why? I have tried window_4.update() but still cant get it working as intended.
I have the below code. Basically, the computer picks a number and the user's job is to guess the number, they have three tries. Every time they guess incorrectly they lose a life and the picture of the heart should disappear. However the first two disappear. But when it gets to heart_1 that does not disappear. Why? I have tried window_4.update() but still cant get it working as intended.
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()