¡Hola! En esta ocasión realizaremos un pequeño proyecto, el cual permitirá conocer apropiadamente el uso de los ciclos for, while y las condiciones if.
Trataremos de abordar todo desde la perspectiva de un juego de 21 Blackjack.
Las condiciones para este juego son bastante simples:
import random
cartas = {
"dos": 2,
"tres": 3,
"cuatro": 4,
"cinco": 5,
"seis": 6,
"siete": 7,
"ocho": 8,
"nueve": 9,
"J": 10,
"Q": 10,
"K":10,
"As": 11
}
menu = int(input("Marque 1 si desea emepezar a jugar 21 BlackJack o 0 si desea salir\n"))
whilemenu > 0:
dinero = 50
whilemenu > 0:
dinero = 50while dinero > 0:
Teniendo esto en cuenta, emepzaremos a escribir la lógica de nuestr porgrama, una para el “crupier” o más conocido como la “casa” y otra para el “jugador”, así que desarrollaremos primero la elección aleatoria de las cartas dentro de nuestro diccionario.
Es bueno recordar que, los diccionarios tienen la siguiente estructura {Keys: VALOR}, para nuestro caso usaremos las Keys, y solamente debemos tener dos cartas.
Para este caso, es necesario conocer que la función a utilizar es random.sample(datos, 2). Esta función permite obtener una muestra y para nuestro caso, necesitamos dos objetos. Fianlmente, para el caso transformamos estos datos en una lista, para poder trabajar más sencillo.
#Lógica de Crupier
print("Apuesta de $10")
mesa = random.sample(list(cartas.keys()),2)
print(f"Cartas del Crupier: {mesa}")
Siguiente, debemos establecer cuánto será la suma de las cartas que tiene la mesa. Pero, tenemos seleccionadas solamente las Keys, para esto debemos acceder a los valores que están ligados a esas Keys. Para esto es debido recordar que, con los corchetes cuadrados podemos acceder a los datos más específicos de un diccionario ejemplo cartas[valor].
Para este proceso usaremos el ciclo For, para que recorra toda la lista y sume los datos que se encuentran dentro de ella.
suma_mesa = 0 for carta_m in mesa:
suma_mesa = suma_mesa + cartas[carta_m]
if"As" in mesa and suma_mesa > 21:
suma_mesa = suma_mesa - 10
print(f"Suma de las cartas del Curpier: {suma_mesa}")
jugador = random.sample(list(cartas.keys()),2)
print(f"Cartas del Jugador: {jugador}")
suma_Cartas = 0 for carta_j in jugador:
suma_Cartas = suma_Cartas + cartas[carta_j]
if"As"in jugador and suma_Cartas > 21:
suma_Cartas = suma_Cartas - 10
print(f"Suma de las cartas del Jugador: {suma_Cartas}")
if suma_mesa > suma_Cartas:
print(f"La Casa ha ganado la partida")
dinero = dinero - 10
print(f"Su dinero es: {dinero}")
elif suma_mesa == suma_Cartas:
print(f"Empate")
dinero = 50
print(f"Su dinero es: {dinero}")
else:
print(f"El jugador ha ganado la partida")
dinero = dinero + 10
print(f"Su dinero es: {dinero}")
if dinero <= 0:
print("Te has quedado sin dinero. Gracas por jugar")
break
menu = int(input("Marque 1 si desea emepezar a jugar 21 BlackJack o 0 si desea salir\n"))
funciono gracias"!!!