-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPiedraPapelTijera.py
75 lines (58 loc) · 2.78 KB
/
PiedraPapelTijera.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk
import random
def jugar_piedra_papel_tijera(jugador, computadora):
if jugador == computadora:
return "Empate", computadora
if (
(jugador == "piedra" and computadora == "tijera") or
(jugador == "papel" and computadora == "piedra") or
(jugador == "tijera" and computadora == "papel")
):
return "Ganaste", computadora
else:
return "Perdiste", computadora
class JuegoPiedraPapelTijera:
def __init__(self, master):
self.master = master
self.master.title("Piedra, Papel o Tijera")
self.opciones = ["piedra", "papel", "tijera"]
self.label_resultado = tk.Label(master, text="", font=("Helvetica", 16))
self.label_resultado.pack(pady=20)
self.frame_opciones = tk.Frame(master)
self.frame_opciones.pack()
self.imagenes = {
"piedra": self.cargar_imagen('piedra.png'),
"papel": self.cargar_imagen('papel.png'),
"tijera": self.cargar_imagen('tijera.png'),
}
for opcion in self.opciones:
button = tk.Button(self.frame_opciones, image=self.imagenes[opcion], command=lambda o=opcion: self.jugar(o))
button.image = self.imagenes[opcion]
button.pack(side=tk.LEFT, padx=10)
self.boton_nuevo_juego = tk.Button(master, text="Nuevo Juego", command=self.nuevo_juego)
self.boton_nuevo_juego.pack(pady=10)
self.contador_victorias = {"piedra": 0, "papel": 0, "tijera": 0}
def cargar_imagen(self, nombre_archivo):
ruta_completa = f'C:/Users/Admin/Desktop/sure lock & key/Piedra Papel Tijera/{nombre_archivo}'
imagen = Image.open(ruta_completa)
return ImageTk.PhotoImage(imagen)
def jugar(self, opcion_usuario):
opcion_computadora = random.choice(self.opciones)
resultado, opcion_computadora = jugar_piedra_papel_tijera(opcion_usuario, opcion_computadora)
mensaje = f"Tú elegiste: {opcion_usuario}\nLa computadora eligió: {opcion_computadora}\nResultado: {resultado}"
self.label_resultado.config(text=mensaje)
if resultado == "Perdiste":
self.contador_victorias[opcion_computadora] += 1
if messagebox.askyesno("Juego Terminado", f"{mensaje}\n¿Quieres jugar de nuevo?"):
self.label_resultado.config(text="")
else:
self.master.destroy()
def nuevo_juego(self):
self.contador_victorias = {"piedra": 0, "papel": 0, "tijera": 0}
messagebox.showinfo("Nuevo Juego", "Se ha reiniciado el contador de victorias.")
if __name__ == "__main__":
root = tk.Tk()
juego = JuegoPiedraPapelTijera(root)
root.mainloop()