0% encontró este documento útil (0 votos)
23 vistas6 páginas

Juego Logica

El documento describe un juego de memoria en el que los jugadores deben encontrar parejas de cartas representadas por emojis. Se utilizan estructuras de datos como listas y diccionarios para gestionar las cartas y su estado, así como funciones para limpiar la pantalla y manejar la lógica del juego. El flujo del juego incluye la selección de cartas, validaciones de entrada y la revelación de cartas seleccionadas, finalizando cuando se encuentran todas las parejas.

Cargado por

Sebastián
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas6 páginas

Juego Logica

El documento describe un juego de memoria en el que los jugadores deben encontrar parejas de cartas representadas por emojis. Se utilizan estructuras de datos como listas y diccionarios para gestionar las cartas y su estado, así como funciones para limpiar la pantalla y manejar la lógica del juego. El flujo del juego incluye la selección de cartas, validaciones de entrada y la revelación de cartas seleccionadas, finalizando cuando se encuentran todas las parejas.

Cargado por

Sebastián
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Import random

Import os

Import platform

Import time

‘’’

Esta lista contendrá las cartas que se van a utilizar en el juego.

‘’’

Figuritas = [“💝”, “⭐”, “🐻”, “🍰”, “🍹”, “🌻”]

‘’’

En una variable guardo la cantidad de figuritas, para más adelante.

Creo una nueva lista duplicando figuritas para crear las parejas

Y la mezclo con [Link](…)

‘’’

Num_figuritas = len(figuritas)

Pares = figuritas + figuritas

[Link](pares)

‘’’

Creo una estructura, con un diccionario.

La “llave” será un índice de carta, comenzando desde 1,

Para esto usamos enumerate(…) y la “comprensión de listas” (el for que


está ahí)

El “valor” será una lista de dos elementos:

- la carta (figurita o emoji)

- el estado de la carta, si encontró su pareja: True o False


‘’’

Pares_ocultos = {

Index: [figurita, False] for index, figurita in enumerate(pares, start=1)

‘’’

De momento esto no se ha visto, es una función.

Es para limpiar la pantalla, pero depende si es windows o linux/unix,

Se usa diferente.

El extraño if, se llama “operador ternario”:

Valor_si_condicion_verdadera if condicion else valor_si_condicion_falsa

‘’’

Def clean():

[Link](“cls” if [Link]() == “Windows” else “clear”)

##-----------------

‘’’

Ya comienza el juego.

Inicializamos las variables que vamos a utilizar:

- contador_fin: contador de parejas encontradas

- contador_movimientos: contador de intentos o movimientos

- carta_1 y _2: cartas seleccionadas por el usuario

‘’’

Carta_1 = “”

Carta_2 = “”

Contador_fin = 0

Contador_movimientos = 0
‘’’

Mientras no se hayan encontrado todas las parejas, el juego sigue.

A menos que se detenga con la palabra exit.

‘’’

While True:

Clean()

Print(“-------- 👑 ENCUENTRA LA PAREJA 👑 ---------\n”)

‘’’

Muestra las cartas ocultas

Es decir, de la estructura diccionario, mostraremos los índices

O identificaciones de las cartas, las llaves.

Pero, si la carta ya encontró su pareja, en vez de mostrar el índice,

Mostraremos el valor o figurita.

El separador es para que haya un salto de línea, a la mitad de la lista

Para hacer mas cómoda la visualización. De nuevo, usa el operador


ternario.

‘’’

For key, value in pares_ocultos.items():

Separador=’\n’ if key % num_figuritas == 0 else ‘’

If value[1]: #-- ya encontró su pareja

Print(f”[ {value[0]} ]”, end=separador)

Else:

Print(f”[ {key} ]”, end=separador)

‘’’
En esta parte, se hace la captura de las dos cartas

Seleccionadas por el usuario en cada turno.

Se usa strip() para eliminar los espacios en blanco al inicio y al final,

Y lower() para convertir a minúsculas.

Se hacen varias validaciones:

- si es exit, sale del juego con break,

- si no es un valor numérico,

O lo es pero no está en el rango de índices válidos,

O sí está pero es una carta que ya encontró su pareja,

Se salta a la siguiente iteración con continue.

- Si digitó el mismo número como carta 1 y 2, se muestra un mensaje


de alerta y

Se salta a la siguiente iteración con continue.

‘’’

Carta_1 = input(

“\nEscoge la primera carta (exit para salir): “).strip().lower()

If carta_1 == “exit”:

Break

If not carta_1.isdigit() or int(carta_1) not in pares_ocultos.keys() or


pares_ocultos[int(carta_1)][1]:

Continue

Carta_2 = input(

“Escoge la segunda carta (exit para salir): “).strip().lower()

If carta_2 == “exit”:

Break

If not carta_2.isdigit() or int(carta_2) not in pares_ocultos.keys() or


pares_ocultos[int(carta_2)][1]:
Continue

If carta_1 == carta_2:

Print(“😱 No puedes elegir la misma carta dos veces!”)

[Link](1.5)

Continue

‘’’

Una vez pasó las validaciones, se van a revelar las cartas


seleccionadas!

Para ello limpiamos primero pantalla, repetimos el título del juego,

Aumentamos el contador de movimientos,

E iteramos los items de la estructura (diccionario) mostrando los


índices,

Pero para las cartas seleccionadas por el usuario,

Y para las cartas que ya han encontrado su pareja,

Se muestran son los valores o figuritas.

‘’’

Clean()

Print(“-------- 👑 ENCUENTRA LA PAREJA 👑 ---------\n”)

Contador_movimientos+=1

For key, value in pares_ocultos.items():

Separador=’\n’ if key % num_figuritas == 0 else ‘’

If key == int(carta_1) or key == int(carta_2) or pares_ocultos[key]


[1]:

Print(f”[ {value[0]} ]” , end=separador)

Else:

Print(f”[ {key} ]”, end=separador)


‘’’

Ahora validaremos si se ha encontrado una pareja.

Para ello, comparamos los valores de las cartas seleccionadas.

Si coinciden, marcamos en la lista de la estructura diccionario,

El segundo valor o posición[1] como True,

Y aumentamos el contador de parejas encontradas y salimos del ciclo.

Pero antes de seguir el ciclo, verificamos si se han encontrado todas


las parejas,

En cuyo caso, se muestra un mensaje de felicitación y se termina el


juego.

‘’’

If pares_ocultos[int(carta_1)] == pares_ocultos[int(carta_2)]:

Pares_ocultos[int(carta_1)][1] = True

Pares_ocultos[int(carta_2)][1] = True

Contador_fin+=1

If contador_fin == num_figuritas:

Print(“\n🥳👋👋👋 – LO HAS LOGRADO -- 👋👋👋🥳”)

Print(f”… en {contador_movimientos} movimientos\n”)

Break

Else:

Print(“\n😎 Felicidades, encontraste una pareja!”)

[Link](1.8)

Print(“------------ 👑 GAME OVER 👑 -------------\n\n”)

También podría gustarte