import random
def crear_baraja():
palos = ["Corazones", "Diamantes", "Tréboles", "Picas"]
rangos = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]
baraja = [(palo, rango) for palo in palos for rango in rangos]
random.shuffle(baraja)
return baraja
def calcular_valor_mano(mano):
valor = 0
ases = 0
for carta in mano:
rango = carta[1]
if rango.isdigit():
valor += int(rango)
elif rango in ["J", "Q", "K"]:
valor += 10
elif rango == "A":
ases += 1
valor += 11
while valor > 21 and ases > 0:
valor -= 10
ases -= 1
return valor
def mostrar_mano(mano, ocultar_primera=False):
cartas = []
for i, carta in enumerate(mano):
if ocultar_primera and i == 0:
cartas.append("?")
else:
cartas.append(f"{carta[1]} de {carta[0]}")
return ", ".join(cartas)
def jugar_blackjack():
baraja = crear_baraja()
mano_jugador = []
mano_crupier = []
for _ in range(2):
mano_jugador.append(baraja.pop())
mano_crupier.append(baraja.pop())
print("¡Bienvenido al Blackjack Simplificado!")
print(f"Tu mano: {mostrar_mano(mano_jugador)}")
print(f"Mano del crupier: ? , {mostrar_mano(mano_crupier[1:])}")
while calcular_valor_mano(mano_jugador) < 21:
accion = input("¿Pedir (p) o Plantarse (pl)? ").lower()
if accion == 'p':
carta = baraja.pop()
mano_jugador.append(carta)
print(f"Pediste: {carta[1]} de {carta[0]}")
print(f"Tu mano: {mostrar_mano(mano_jugador)}")
if calcular_valor_mano(mano_jugador) > 21:
print("¡Te pasaste de 21! ¡Crupier gana!")
return
elif accion == 'pl':
break
else:
print("¡Acción inválida! Introduce 'p' para pedir o 'pl' para plantarse.")
if calcular_valor_mano(mano_jugador) <= 21:
print(f"\nMano del crupier: {mostrar_mano(mano_crupier)}")
while calcular_valor_mano(mano_crupier) < 17:
carta = baraja.pop()
mano_crupier.append(carta)
print(f"El crupier pide: {carta[1]} de {carta[0]}")
print(f"Mano del crupier: {mostrar_mano(mano_crupier)}")
if calcular_valor_mano(mano_crupier) > 21:
print("¡El crupier se pasó de 21! ¡Tú ganas!")
return
valor_jugador = calcular_valor_mano(mano_jugador)
valor_crupier = calcular_valor_mano(mano_crupier)
if valor_crupier > valor_jugador:
print("¡Crupier gana!")
elif valor_jugador > valor_crupier:
print("¡Tú ganas!")
else:
print("¡Empate!")
if __name__ == "__main__":
jugar_blackjack()