From 5b8f4f45b70cad3cf577e238671e8c7207a79f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moran?= Date: Wed, 11 Dec 2024 14:41:26 +0100 Subject: [PATCH] Juego atrapar el boton y arreglo de la barra de carga del pomodoro --- app/__pycache__/game.cpython-313.pyc | Bin 0 -> 3836 bytes .../panel_izquierdo.cpython-313.pyc | Bin 1580 -> 1580 bytes app/__pycache__/pomodoro.cpython-313.pyc | Bin 8390 -> 8370 bytes app/__pycache__/scraping.cpython-313.pyc | Bin 3922 -> 3920 bytes app/game.py | 52 ++++++++++++++++++ app/pomodoro.py | 15 +++-- main.py | 4 ++ 7 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 app/__pycache__/game.cpython-313.pyc diff --git a/app/__pycache__/game.cpython-313.pyc b/app/__pycache__/game.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d11aeec0dca52af9c87df5719e6399a8622a04f GIT binary patch literal 3836 zcmbVOU2GHC6~5!&i8D^zKu9q8nZ$&y%K|M6g1E3%Sjs|{q{su(Qru1__QaWFJQMDW zcQ;6t`c!4Nv}`M(uIK~iWtZKDDt#)Is#e;k^r;>~Mw-}}FM2~>%e6W?uYz)$6bR)c0v0*21{P>U3PT%} zBGAU9D70}YM)`6)%ey`2HQk)8s%5hogVn{>Ud&<~+A#cgK7$=@lebek8^%WBt`Obd z7tRU2_R4E$h&_4m!Sl}~xxz`|D+PN(RH>+L)GC@(b>p;Z7@ARb zL-vXry{Igxy4$Oxki7|TnBs~XJ5#l7({PiTcPM!of$Iujp4#$)_i~qJ6scNK;pS9c z^&H?Pp;K1FoY|IT zcc2|`hy5{(GwTn~{D^E1rf(*m#K@kZ^~lY{_Rt6j;U6(FGIsamos+e1Z)6{w{p0NK zW*?lYfBpRC59^BV?5nIt9`VE5ywKo>9e%jMk2?Hl?Pwk40a!aae)qzi3pI7)$mX%e zTi+pLU{FuX!)n@7_am|=`_v)Riwd%&{%|yNMgGRx2;5S;uWofo7 z?eOUaKko43wS1i)f5^YG12-VWHYq>{DUT5dQUy>Rk_Jv<4`k+(v4p9_G!Am&ky;# z2l9AJ6$wy4&-`V^0Ti$BDaXQ)B9DQ-3xpdpOj=QNi1U~i8d-s&QHpd!(`-u7G#0fo z9m5e3M|$ifswyQ6)YxUFy1f1N1rh+YVebhr zW8p^^=_Ist6wM9=A@NLL<0-6PK?89yv=1X;dvFhniva5kfNLAOf1CbIdPAsBodzsA z{OcXa79C!!-Kg^*k9Ht;!r>?G^K~BNHvsTrwlRL>;rNjayK&-82Y%z{5$hw{2fnr* zY49TsKk|sru=S`n_(_MK{0qOIPQm$}0XSyM+K$ z0SJ*X?=zs13H9)={6v6C#f1vx?+XGT~Is{p| zoqxLp0o*)tyhRW!sQu*~vh7Fk;oQdrpby}W&Nq+3oMs6cpnC2-ms@M1p=^R-+>HUh zm&^*J9gvz~vpnGTzN;CFru?o}vX@-J>ny35C_VH?S9PVRLb}vg;?h-h6%yP8*rg}1 z!Me`EFE5HMbRUL}I~bt5BUTRJ9_R1r}q4^?-zX^(b}<3a`$qL%(Ro4 z-pYLQLD9*~Y^Bbu&wTOxjGU9nZDme9u$;`9t<)RqGk+CQ4Pnd?#u~zYN7!GxUPpQO z3n6uD_Ji3Euiu<|k|h1RaJ!%AFG3d?m_hevE$E)+x`9{X4ngTzPu~VH*l0cZ zb^+&)K!JuZ3A$~Km44wC7q>?PMT+EpPly5@lcK<&cuMwwwQgMBZReO2e+k!jTfx6{ zMVIo^4?hOiFY6I3ME&b@$iO2E)QNdI4R0Bt)32h2dFLF>qKaX_=)F1#+UNIJu_j(t zX$6Xtk~tx^3PEuZixnsb;{ngpgSeP+f57wt!@9g^V%0=3nmSo~9Qy8Pfa@+5*AZOu zYiI!9yl^Y=LE=N@{r;aO7=wCc%73A5sD1#hx%YD)4Q%!9+ukRxpS^i;8-YFQ2%{db z@1JDAKE{SUyiYm8)cx7I0P;k~@Igm7_((X!Mn)WAq#q6$CaP3Ji5k^={fOoJkq<9CG3Oh1m+eP!)9<1sNDDa@FOURJ+N>v?oL6)yq6}|PQ zUzQg&YT3GGsD>%aG=o+#?@^=&%6vH}%UB|7MOm?JszD{ITC)5pVaM?@CB`Pj1~Y+$ zpXxd24WHHb!3s;l}M1AUT!NVd&8uHs8XAnVdy! w3LAuu%b)V@@jAT-T_jBl&-x_Haol5)dQ5gdCdtR7_g|6MxB~Z-V9S>O2bAm9kN^Mx literal 0 HcmV?d00001 diff --git a/app/__pycache__/panel_izquierdo.cpython-313.pyc b/app/__pycache__/panel_izquierdo.cpython-313.pyc index a2a58ac95c8873887469c945ba7f5dcf3a39a9e1..0d421d63341040028fab3dc069d0810d54686312 100644 GIT binary patch delta 22 ccmZ3(vxbNFGcPX}0}wp^9g%)~Bd~j7UGakyoA#07w)DO#lD@ diff --git a/app/__pycache__/pomodoro.cpython-313.pyc b/app/__pycache__/pomodoro.cpython-313.pyc index 31f56c0e584f66cdccf9ec79a15db1a9a44b236a..f846e306833acfb5b65cce1c8411622c50727b7d 100644 GIT binary patch delta 697 zcmZ8eO=uHA6rS1a#xzZ~shezeyU8{&rb!BIN()ttC=nF|TZ?O;J=i88X^o`aI;lSw zsZuH_2$epCo=U-s9&FK4@z_%jg5c^Qv0kbN!CQ@I!I{*PkKyCJZ{GKKKfCESY4Nw) z?L^eNU~Fnqel5Bs{2l_*E4#sG&{Y@YI4LZ|Xu=dq*oQ9?j=Fooom}~L@n?bhM5X{= zr4qgb7rZISa_IF)SCwCOFS(zTJ~=|ffL|VUYt74ZI1A6^ZK2PG&@=d^__-Mjo_5(` z;8RZ#%B`%ZVf+x*{P(y~4`lsbxreqk!;OY}S`jjAJpzqvqkWK7y}ZH45bP@&Y%ASV zw6ApHI@SAjX{L}tWlY;@T62mWr2|G(!EOJK)!@FW!-68ghU(%B8;q;6)3CF7sjdaq z+XI||8Os?wWILk5k$?4cyWzNkjTYGG$cWD2=3YpI>PQY;+O7FKb5jiZ86+9>GTiw}BWEgZ}*m&~Ce6 delta 660 zcmYk2UuaTM9LLYO{=4S&X5E{+*T0#{SVM)Npp=y*y}89q2tq?~TY^*4S-m;>1B;*q zzn31(hg`6bEn+W$#VGX2tihH-t(PFEFnj2+&ROI-96p@i_s8$|`~J>q@O6;?sn_p8 zM+Z{uwl)96y_9NUo#0n#dHVKq02FA7(|r>Md)_N8pD+e!3wl z8GH%e8=v7vusCFf7m^0ALXDANThii(@O9`q6Gd=e5{bY-a;hVEV8dl{DAa=yoI0YJz!4U*rl?jszVj)0C$vphjwQ(0 z{1FN-g^$8dp(NFjhaf0Ak!2?}%rsG426G>!ZuoJa7<90+X%PSwNpa5+`Y zRB=rA$wl8KpLNu^nV#(*a5rpPn4ZEzkOa tje(VWb20ZmCPwegMtp3H5?nltBA*oa8O=YbNHbb|w&P%wDsl#D005lb7g+!R diff --git a/app/game.py b/app/game.py index e69de29..09750e0 100644 --- a/app/game.py +++ b/app/game.py @@ -0,0 +1,52 @@ +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}") diff --git a/app/pomodoro.py b/app/pomodoro.py index 634a313..f4c7743 100644 --- a/app/pomodoro.py +++ b/app/pomodoro.py @@ -90,7 +90,8 @@ class PomodoroTimer: self.is_running = False self.remaining_time = self.work_time if not self.is_break else self.break_time self.update_timer_label() - self.progress["value"] = 0 + self.progress["value"] = 0 + self.progress["maximum"] = 100 def apply_settings(self): try: @@ -103,20 +104,23 @@ class PomodoroTimer: messagebox.showerror("Error", "Por favor, ingresa valores numéricos válidos.") def run_timer(self): + total_time = self.remaining_time # Guarda el tiempo total inicial while self.remaining_time > 0 and self.is_running: time.sleep(1) self.remaining_time -= 1 self.update_timer_label() - self.progress["value"] = (self.work_time if not self.is_break else self.break_time) - self.remaining_time + # Calcula el progreso como porcentaje + elapsed_time = total_time - self.remaining_time + progress_value = (elapsed_time / total_time) * 100 + self.progress["value"] = progress_value if self.remaining_time == 0 and self.is_running: self.is_running = False self.is_break = not self.is_break - # Actualizar el tiempo restante según la nueva fase self.remaining_time = self.break_time if self.is_break else self.work_time - self.progress["maximum"] = self.break_time if self.is_break else self.work_time # Actualiza el máximo + self.progress["maximum"] = 100 self.update_timer_label() - self.progress["value"] = 0 # Reinicia la barra + self.progress["value"] = 0 messagebox.showinfo( "Pomodoro Finalizado", "¡Tiempo de descanso!" if self.is_break else "¡Tiempo de trabajar!", @@ -125,6 +129,7 @@ class PomodoroTimer: self.start_timer() + def update_timer_label(self): self.timer_label.config(text=self.format_time(self.remaining_time)) diff --git a/main.py b/main.py index e50504f..8a9f15f 100644 --- a/main.py +++ b/main.py @@ -11,6 +11,7 @@ import time import datetime import psutil from app import scraping +from app import game def update_time(status_bar): @@ -115,6 +116,9 @@ for i in range(1, 6): pomodoro.PomodoroTimer(tab) elif i == 3: notebook.add(tab, text="Gestor de tareas", padding=4) + elif i == 4: + notebook.add(tab,text='Juego', padding=4) + hilo_juego = game.HiloJuego(tab) else: notebook.add(tab, text=f"Solapa {i}", padding=4) # Añadir un Label en cada solapa para diferenciarla