es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mostrando una carta y utilizándola para una operación matemática en Blackjack.

Estoy trabajando en un proyecto de Blackjack.

Quiero poder usar la letra “A” en una lista de enteros del 2 al 10.

Me estoy perdiendo al pasar el valor de una cadena, en este caso ‘A’, a la función sum() para las cartas, y luego devolver ese valor pero mostrar la ‘A’ en las cartas es donde me estoy perdiendo.

Por ejemplo:
cartas = [‘A’, 2, 3, 4, 5, 6, 7, 8, 9, 10]

La lista devolverá aleatoriamente 2 valores que van de A-10.
Luego, si se devuelve A con otro número, quiero calcular el valor de la letra A + el entero.

Imprimiría algo como
“Tu mano es: [A, 7] Total = 18”

Esto es en lo que he estado experimentando hasta ahora.

import random

A = ord(“A”) – 64
def repartir():
cartas = [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
jugador = []
repartidor = []

mientras len(jugador) < 2:
jugador.append(random.choice(cartas))
repartidor.append(random.choice(cartas))

return jugador, repartidor

esto es UNPAQUETE ITERABLE, separa los valores devueltos de la función deal() y los asigna a sus variables respectivas.

jugador, repartidor = repartir()

#suma el valor de las cartas

cartas_jugador = sum(jugador)
cartas_repartidor = sum(repartidor)

print(f”Tus cartas son {jugador}. Total = {cartas_jugador}”)
print(f”El repartidor muestra [{repartidor[0]}, *]. Total = {cartas_repartidor}”)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si puedes proporcionar alguna ayuda o consejo sobre cómo incluir la ‘A’ en la función sum() y mostrarla al usuario, realmente lo apreciaría. Gracias.

    Podrías usar una declaración condicional para comprobar si la carta es una ‘A’ y luego asignarle un valor de 11. Luego puedes agregar el valor de la carta a la suma.

    import random
    
    A = ord("A") - 64
    def deal():
      cards = [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
      player = []
      dealer = []
    
      while len(player) < 2:
        player.append(random.choice(cards))
        dealer.append(random.choice(cards))
    
      return player, dealer
    
    #esto es un DESEMPAQUETADO ITERABLE que separa los valores devueltos de la función deal() y los asigna a sus variables correspondientes.
    
    jugador, repartidor = deal()
    
    #suma el valor de las cartas
    
    cartas_jugador = 0
    for carta in jugador:
      if carta == A:
        cartas_jugador += 11
      else:
        cartas_jugador += carta
    
    cartas_repartidor = 0
    for carta in repartidor:
      if carta == A:
        cartas_repartidor += 11
      else:
        cartas_repartidor += carta
    
    print(f"Tus cartas son {jugador}. Total  = {cartas_jugador}")
    print(f"El repartidor muestra [{repartidor[0]}, *]. Total = {cartas_repartidor}")
    

Comments are closed.