Requisito previo: Tkinter , aleatorio
Python ofrece múltiples opciones para desarrollar una GUI (interfaz gráfica de usuario). De todos los métodos GUI, Tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI que se envía con Python. Python con Tkinter es la forma más rápida y sencilla de crear aplicaciones GUI.
En este artículo, veremos cómo podemos crear un juego de piedra, papel y tijera usando Tkinter. Piedra, papel, tijera es un juego de manos que generalmente se juega entre dos personas, en el que cada jugador forma simultáneamente una de tres formas con la mano extendida. Estas formas son «piedra», «papel» y «tijeras».
Condición del ganador del juego:
- Papel y tijera => Ganancia de tijera
- Roca y tijera => Victoria de roca
- Papel y piedra => Ganancia de papel
A continuación se muestra el aspecto de la GUI:
Pasos de implementación de GUI (agregar botón, etiqueta, marco)
- Cree una etiqueta de encabezado que muestre el título del juego, configure su fuente y propiedades
- Debajo de la cabeza, la etiqueta crea una etiqueta de usuario que mostrará el signo de la mano seleccionado por el usuario
- Cree una etiqueta de computadora que muestre el signo de la mano elegido por la computadora
- Entre el usuario y la etiqueta de la computadora, cree una etiqueta para mostrar el texto «vs»
- Cree una etiqueta de resultado para mostrarle la fuente del conjunto de resultados y otras propiedades.
- Crea tres pulsadores para piedra, papel y tijera respectivamente
- Crea un botón de reinicio para reiniciar el juego
Pasos de implementación de back-end:
- Crearemos cinco funciones; uno es para reiniciar el juego, el segundo es para deshabilitar el botón y el otro es para los ganadores del juego
A continuación se muestra la implementación: –
Python3
# Import Required Library from tkinter import * import random # Create Object root = Tk() # Set geometry root.geometry("300x300") # Set title root.title("Rock Paper Scissor Game") # Computer Value computer_value = { "0":"Rock", "1":"Paper", "2":"Scissor" } # Reset The Game def reset_game(): b1["state"] = "active" b2["state"] = "active" b3["state"] = "active" l1.config(text = "Player ") l3.config(text = "Computer") l4.config(text = "") # Disable the Button def button_disable(): b1["state"] = "disable" b2["state"] = "disable" b3["state"] = "disable" # If player selected rock def isrock(): c_v = computer_value[str(random.randint(0,2))] if c_v == "Rock": match_result = "Match Draw" elif c_v=="Scissor": match_result = "Player Win" else: match_result = "Computer Win" l4.config(text = match_result) l1.config(text = "Rock ") l3.config(text = c_v) button_disable() # If player selected paper def ispaper(): c_v = computer_value[str(random.randint(0, 2))] if c_v == "Paper": match_result = "Match Draw" elif c_v=="Scissor": match_result = "Computer Win" else: match_result = "Player Win" l4.config(text = match_result) l1.config(text = "Paper ") l3.config(text = c_v) button_disable() # If player selected scissor def isscissor(): c_v = computer_value[str(random.randint(0,2))] if c_v == "Rock": match_result = "Computer Win" elif c_v == "Scissor": match_result = "Match Draw" else: match_result = "Player Win" l4.config(text = match_result) l1.config(text = "Scissor ") l3.config(text = c_v) button_disable() # Add Labels, Frames and Button Label(root, text = "Rock Paper Scissor", font = "normal 20 bold", fg = "blue").pack(pady = 20) frame = Frame(root) frame.pack() l1 = Label(frame, text = "Player ", font = 10) l2 = Label(frame, text = "VS ", font = "normal 10 bold") l3 = Label(frame, text = "Computer", font = 10) l1.pack(side = LEFT) l2.pack(side = LEFT) l3.pack() l4 = Label(root, text = "", font = "normal 20 bold", bg = "white", width = 15 , borderwidth = 2, relief = "solid") l4.pack(pady = 20) frame1 = Frame(root) frame1.pack() b1 = Button(frame1, text = "Rock", font = 10, width = 7, command = isrock) b2 = Button(frame1, text = "Paper ", font = 10, width = 7, command = ispaper) b3 = Button(frame1, text = "Scissor", font = 10, width = 7, command = isscissor) b1.pack(side = LEFT, padx = 10) b2.pack(side = LEFT,padx = 10) b3.pack(padx = 10) Button(root, text = "Reset Game", font = 10, fg = "red", bg = "black", command = reset_game).pack(pady = 20) # Execute Tkinter root.mainloop()
Producción: