Hallo Ich mache ein Anfängerprojekt alleine, indem ich ein Blackjackspiel mache. Es läuft gut und ich kann sogar die Wahl zwischen 1 und 11 für Ace-Werte. Mein Problem ist, dass ich versuche, die Karten für mich selbst aus dem Deck zu entfernen und auch wenn ich einen Dealer hinzufüge.Listenwerte entfernen
Ich dachte, ich könnte die .remove() Funktion tun, es zu entfernen, aber das scheint nicht nach dem Laufen durch das Programm mit http://www.pythontutor.com/
Hier ist der Deck-Code I
from random import randint
def CardDeck():
#sets the card types and values
CardValue = ['Ace','2','3','4','5','6','7','8','9','10','J','Q','K']
CardType = ['Hearts','Spades','Clubs','Diamonds']
Deck = []
Card = randint(0,(len(CardValue)*len(CardType)))
#This iterates all 52 cards into a deck
for i in CardType:
for j in CardValue:
Deck.append(j + ' of ' + i)
temp = Deck[Card]
Deck.remove(Deck[Card]) #this should remove the card from the deck
return temp
Es sieht so aus, als ob die Karte erfolgreich aus 'Deck' entfernt wird, aber dann verlässt man die Funktion eine Zeile später und' Deck' existiert nicht mehr. Wenn Sie die Funktion erneut aufrufen, wird ein brandneues "Deck" erstellt, das absolut keine Verbindung zu dem Objekt hat, das diesen Namen einmal hatte. Wenn Sie möchten, dass "Deck" seinen Status über mehrere Funktionsaufrufe hinweg behält, können Sie es nicht jedes Mal neu in der Funktion erstellen. – Kevin
Wie würden Sie vorschlagen, dass ich das tue? Habe einfach alles außerhalb einer Funktion, nehme ich dann an? –
BTW: in Python ist die Konvention, Funktionen und Variablen mit snake_case und beginnend mit Kleinbuchstaben zu benennen. Verwenden Sie CamelCase für Klassennamen. – Pax0r