Cree este divertido juego de numerología en Python para practicar la manipulación de cadenas y aprender sobre Tkinter.

LLAMAS es un juego divertido para niños que representa a Amigos, Amantes, Cariñosos, Matrimonio y Enemigos. El juego toma los nombres de dos personas y, con una serie de pasos, determina su relación. Para jugar FLAMES, anote los nombres de las dos personas, elimine las letras que coincidan y obtenga la cuenta de los caracteres que quedan.

Itere sobre las letras de la palabra FLAMES usando el conteo y elimine esa letra. Por ejemplo, si la cuenta es cuatro, elimine la letra M. La cuenta comienza de nuevo desde E. Repita este proceso hasta que solo quede una letra, que indica el estado de la relación.

El Módulo Tkinter

Para construir el juego FLAMES, utilizará el módulo Tkinter. Tkinter es un módulo multiplataforma, simple y fácil de usar que puede usar para crear interfaces gráficas de usuario rápidamente. Algunas de las aplicaciones que puede crear como principiante usando Tkinter incluyen un

instagram viewer
Reproductor de música, Calendario, Herramienta de conversión de peso, y un Juego de revoltijo de palabras.

Para instalar tkinter en su sistema, ejecute el siguiente comando en la terminal:

pip instalar tkinter

Cómo construir un juego FLAMES usando Python

Puedes encontrar el código fuente del juego FLAMES usando Python en este repositorio GitHub.

Importe el módulo Tkinter. Definir una función, remove_match_char() que acepta dos listas como entrada. Use un bucle for anidado para iterar sobre ambas listas. Compruebe si hay un carácter coincidente; si lo hay, elimínelo de ambas listas y cree una tercera lista que concatene ambas listas con un asterisco en el medio. El asterisco actúa como delimitador.

Devuelve la tercera lista junto con la coincidencia encontrada como True. En caso de que ninguna letra coincida, devuelva la lista como se creó anteriormente.

de tkinter importar *

definitivamenteremove_match_char(lista1, lista2):
para i en rango (len (lista1)):
para j en rango (len (lista2)):
si lista1[i] == lista2[j]:
c = lista1[i]
list1.remove (c)
list2.remove (c)
lista3 = lista1 + ["*"] + lista2
devolver [lista3, Verdadero]
lista3 = lista1 + ["*"] + lista2
devolver [lista3, FALSO]

Definir una función, decir_estado(). Recuperar el nombre de la persona que el usuario ingresó usando el conseguir() método en el widget de entrada. Convierta todas las letras a minúsculas y elimine los espacios intermedios. Convierta el nombre en una lista de caracteres. Repita esto con el nombre de la segunda persona y configure el proceder variable a Verdadero.

definitivamenteTell_status():
p1 = Persona1_campo.get()
p1 = p1.inferior()
p1.reemplazar(" ", "")
p1_lista = lista (p1)
p2 = Persona2_campo.get()
p2 = p2.inferior()
p2.reemplazar(" ", "")
p2_lista = lista (p2)
proceder = Verdadero

Hasta que el valor de proceder sea verdadero, llama al remove_match_char() y pase las dos listas que acaba de crear. Almacene la lista concatenada y el estado de la bandera recibido de la función. Busque el índice del asterisco que insertó y divida las cadenas en dos listas antes y después.

Cuente la cantidad de caracteres en las dos listas y defina una lista que almacene los diversos estados que puede tener una relación según el juego FLAMES.

mientras proceder:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
proceder = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[star_index + 1:]

cuenta = len (p1_lista) + len (p2_lista)
resultado = ["Amigos", "Amar", "Afecto", "Casamiento", "Enemigo", "Hermanos"]

Hasta que las letras en la lista de resultados no sean cero, almacene el valor del índice desde donde debe realizar el corte. Si el índice es mayor o igual a cero, divida las listas en dos partes y almacene la cadena concatenada con la parte derecha agregada primero en orden. Esto asegura que pueda contar en sentido contrario a las agujas del reloj.

Inserte el resultado en el campo de estado en la posición del primer carácter para mostrar el estado de la relación.

mientras len (resultado) > 1:
split_index = (recuento % len (resultado) - 1)

si índice_dividido >= 0:
derecha = resultado[índice_dividido + 1:]
izquierda = resultado[: split_index]
resultado = derecha + izquierda
demás:
resultado = resultado[: len (resultado) - 1]

Estado_campo.insertar(0, resultado[0])

Definir una función, limpiar todo(). Use la función eliminar () desde el primer índice hasta el último en los tres campos de entrada para borrar el contenido que se muestra en la pantalla. Use el método focus_set() en el primer campo de entrada para activar e indicar al usuario que ingrese valores en él.

definitivamentelimpiar todo():
Persona1_campo.eliminar(0, FIN)
Persona2_campo.eliminar(0, FIN)
Estado_campo.eliminar(0, FIN)
Persona1_campo.focus_set()

Inicialice la instancia de Tkinter y muestre la ventana raíz pasándola a la clase. Establezca el color de fondo de su elección, el tamaño y el título de su aplicación.

raíz = Tk()
root.configure (fondo='#A020F0')
raíz.geometría("700x200")
raíz.título("Juego de llamas")

Defina tres etiquetas para indicar a las dos personas y su estado civil. Configure la ventana principal en la que desea colocarlos, el texto que debe mostrar, el color de fuente, el color de fondo y los estilos de fuente. Agregue algo de relleno en la dirección horizontal.

label1 = Etiqueta (raíz, texto="Nombre 1:", fg='#ffffff',bg='#A020F0', fuente=("arial",20,"atrevido"), padx='20')
etiqueta2 = Etiqueta (raíz, texto="Nombre 2:", fg='#ffffff',bg='#A020F0', fuente=("arial",20,"atrevido"), padx='20')
label3 = Etiqueta (raíz, texto="Estado civil: ", fg='#ffffff', bg='#A020F0',fuente=("arial",20,"atrevido"), padx='20')

Utilice el administrador de cuadrículas para organizar los tres widgets en la primera columna. Coloque la primera etiqueta en la segunda fila, la segunda etiqueta en la tercera fila y la tercera etiqueta en la cuarta fila.

etiqueta1.grid (fila=1, columna=0)
etiqueta2.grid (fila=2, columna=0)
etiqueta3.grid (fila=4, columna=0)

Defina tres widgets de entrada para obtener los valores de las dos personas y mostrar su estado. Configure la ventana principal en la que desea colocar los widgets y los estilos de fuente que debe tener.

Person1_field = Entrada (raíz, fuente=("arial", 15, "atrevido"))
Person2_field = Entrada (raíz, fuente=("arial", 15, "atrevido"))
Status_field = Entrada (raíz, fuente=("arial",15,"atrevido"))

Del mismo modo, use el administrador de cuadrículas para organizar los widgets en la segunda columna. Utilizar el ipadx propiedad para establecer el número de píxeles para rellenar dentro de los bordes del widget.

Persona1_campo.grid (fila=1, columna=1, ipadx="50")
Persona2_campo.grid (fila=2, columna=1, ipadx="50")
Status_field.grid (fila=4, columna=1, ipadx="50")

Defina dos botones, Entregar y Claro. Establezca la ventana principal en la que desea colocarlos, el texto que debe mostrar, el color de fondo, el color de la fuente, las funciones que deben ejecutar al hacer clic y los estilos de fuente.

Use el administrador de cuadrícula para colocar los botones en la cuarta y sexta fila de la segunda columna, respectivamente.

button1 = Botón (raíz, texto="Entregar", bg="#00ff00", fg="negro", comando=decir_estado, fuente=("arial",13,"atrevido") )
button2 = Botón (raíz, texto="Claro", bg="#00ff00", fg="negro", comando=borrar_todo, fuente=("arial",13,"atrevido"))
botón1.cuadrícula (fila=3, columna=1)
botón2.grid (fila=5, columna=1)

El bucle principal() La función le dice a Python que ejecute el ciclo de eventos de Tkinter y escuche los eventos hasta que cierre la ventana.

raíz.mainloop()

Reúna todo el código y prepárese para jugar el juego FLAMES al alcance de su mano.

Salida de muestra del juego FLAMES

Al ejecutar el programa anterior, el programa muestra la aplicación del juego FLAMES con tres etiquetas, tres campos de entrada y dos botones dispuestos en una cuadrícula. Al ingresar los nombres "Tony Stark" y "Pepper Potts", el programa muestra el estado de su relación como "Amor".

Juegos que puedes construir usando Python

Pygame, Arcade, Panda3D, PyOpenGL y Pyglet son algunos módulos útiles con los que puede crear juegos de Python. Usando Pygame puedes construir juegos 2D como Super Mario Bros, Flappy Bird y Snake. Usando Arcade puedes construir un clon de Pac-Man, Asteroids o Breakout.

Panda3D puede ayudarte a crear juegos en 3D como Toontown Online, Pirates of the Caribbean Online y Disney's Virtual Magic Kingdom.