Domanda

Allora, la mia sfida personale è creare un semplice gioco di Blackjack in Python.Questo è il modo in cui sono andato a farlo:

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)
.

Quando si tratta di stampare il singlePlayerCardValueTotal, mi dice che singlePlayerCardValue o singlePlayerCard2Value è stato referenziale prima dell'assegnazione.Mi ha confuso leggermente come ho avuto questo problema in passato con un altro semplice programma che ho fatto, ma la struttura è diversa qui.Oltre al suddetto problema, stava lavorando bene.Inoltre, se hai il tempo, ti preghiamo di informarmi di soluzioni migliori ad alcune aree se necessario.

Come sempre, grazie in anticipo!:)

È stato utile?

Soluzione

Come hai notato nel tuo commento, "referenziato prima di assegnazione" significa che hai menzionato una variabile prima che sia stata data un valore.

Sembra che il tuo problema sia questo:

if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard
.

Poiché il tuo singlePlayerCard non è mai uguale a L'elenco [1,2,3,4,5,6,7,8,9,10], non assegnerà un valore alla variabile quando è una scheda numerica.

L'operatore == non è il modo per verificare se un elenco contiene un valore.Prova questo, invece:

if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top