import threading import tkinter as tk import random import time class HiloJuego: def __init__(self, frame): self.frame = frame self.score = 0 self.running = False self.label_score = tk.Label(frame, text=f"Puntaje: {self.score}", font=("Arial", 16), bg="lightgray") self.label_score.pack(pady=10) self.start_button = tk.Button(frame, text="Iniciar Juego", command=self.iniciar_juego) self.start_button.pack(pady=5) self.target_button = tk.Button(frame, text="¡Click me!", state="disabled", command=self.incrementar_puntaje) self.target_button.pack(pady=20) def iniciar_juego(self): self.running = True self.score = 0 self.label_score.config(text=f"Puntaje: {self.score}") self.start_button.config(state="disabled") self.target_button.config(state="normal") # Hilo para mover el botón self.hilo_movimiento = threading.Thread(target=self.mover_boton) self.hilo_movimiento.daemon = True self.hilo_movimiento.start() def mover_boton(self): while self.running: x = random.randint(50, self.frame.winfo_width() - 100) y = random.randint(50, self.frame.winfo_height() - 100) self.target_button.place(x=x, y=y) time.sleep(1) def incrementar_puntaje(self): self.score += 1 self.label_score.config(text=f"Puntaje: {self.score}") #Fin del juego if self.score >= 10: self.running = False self.start_button.config(state="normal") self.target_button.config(state="disabled") self.target_button.place_forget() self.label_score.config(text=f"¡Juego Terminado! Puntaje final: {self.score}")