Juego de piedra, papel y tijera usando Tkinter

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:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *