Python juego de Blackjack de referencia antes de la asignación de
-
26-12-2019 - |
Pregunta
Por lo tanto, mi reto personal es hacer un simple juego de Blackjack en python.Esta es la forma en que he ido haciendo:
singlePlayerCard = random.choice(availableCards)
singlePlayerCard2 = random.choice(availableCards)
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
if(singlePlayerCard2 == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCard2Value = singlePlayerCard2
singlePlayerCardValueTotal = singlePlayerCardValue+singlePlayerCard2Value
print ("The total of your card values is %i"%singlePlayerCardValueTotal)
Cuando se trata de imprimir el singlePlayerCardValueTotal
me dice que singlePlayerCardValue
o singlePlayerCard2Value
ha hecho referencia antes de la asignación.Es que me confunde ligeramente como he tenido este problema en el pasado con otro sencillo programa que he hecho, pero la estructura es diferente aquí.Aparte de la cuestión antes mencionada, se estaba trabajando bien.También si usted tiene el tiempo, por favor, me informen de alguna solución mejor para algunas áreas, si es necesario.
Como siempre, gracias de antemano!:)
Solución
Como señaló en su comentario, "hace referencia a antes de la asignación" significa que usted ha mencionado una variable antes de que se le ha dado un valor.
Parece que tu problema es este:
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
Desde su singlePlayerCard
nunca es igual la lista [1,2,3,4,5,6,7,8,9,10]
, usted no va a asignar un valor a la variable cuando se trata de un número de tarjeta.
El ==
el operador no es la manera de comprobar si una lista contiene un valor.Pruebe esto en su lugar:
if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard