2017-12-22 2 views
-2

Ich erstelle ein Python-Kartenspiel, aber ich habe Schwierigkeiten, wie die Werte aus dem Wörterbuch herausziehen. Ich bin eine CSV-Datei importieren, die wie folgt aussieht:War Carded Spiel Python

Card, Type, Value 
2, Spades, 2 
3, Spades, 3 

Ich habe den folgenden Code geschrieben:

import random, csv ,collections 
reader = csv.DictReader(open('deck.csv','r')) 
deckcards=[] 
for line in reader: 
    deckcards.append(line) 
random.shuffle(deckcards) 
hand1=[] 
hand2=[] 
player1=[] 
player2=[] 
while len(deckcards) !=0: 
    if len(deckcards) ==0: 
     break 
    player1.append(deckcards.pop()) 
    player2.append(deckcards.pop()) 
def declarewar(hand1,hand2,player1,player2): 

    hand1.append(player1.pop()) 
    hand2.append(player2.pop()) 
    return hand1,hand2,player1,player2 
print statement looks like this: 

[OrderedDict([('Card', 'King '), ('Type ', 'Hearts'), ('value', '13')])] 
+1

Was meinst du dich stopfen Sie die Werte aus dem Wörterbuch heraus? Wo genau ist das Problem, und was versuchst du zu tun, das funktioniert nicht? – roelofs

+0

Nun, ich versuche den Wert von Hand1 zu bekommen. Wenn hand1 gedruckt wird, sieht das so aus [OrderedDict ([('Karte', 'König'), ('Typ', 'Herz'), ('Wert', '13')])]. Also möchte ich den Wert des Wertes nehmen, der 13. ist. – Seemsthesame

+0

oder lässt sagen, ich möchte wissen, welche Karte es ist, was König ist, wie ziehe ich diesen Wert heraus. – Seemsthesame

Antwort

0
hand=[('Card', 'King '), ('Type ', 'Hearts'), ('value', '13')] 

#get value from hand 
card=hand[0][1] #print result: "King" 
type=hand[1][1] #print result: "Hearts" 
value=hand[2][1] #print result: "13" 

player1=[ 
[('Card', 'King '), ('Type ', 'Hearts'), ('value', '13')], 
[('Card', 'Queen '), ('Type ', 'Diamonds'), ('value', '12')], 
[('Card', 'Ace '), ('Type ', 'Hearts'), ('value', '14')] 
] 

#get player values 
for i in range(len(player1)): 
    for j in range(3): 
     print(player1[i][j][0]+" "+str(i)+": "+player1[i][j][1]) 

Spielerdrucker

Card 0: King 
Type 0: Hearts 
value 0: 13 
Card 1: Queen 
Type 1: Diamonds 
value 1: 12 
Card 2: Ace 
Type 2: Hearts 
value 2: 14 
+0

Ich war nicht das, was ich suchte, aber danke, es half. – Seemsthesame

+0

Sicher, dass es mir geholfen hat. :) –