战争牌游戏Python

2024-09-28 05:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个Python纸牌游戏,但是,我很难从字典中提取值。我正在导入一个如下所示的CSV文件:

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

我编写了以下代码:

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')])] 

Tags: csvlentypelinerandomcardpopreader
1条回答
网友
1楼 · 发布于 2024-09-28 05:22:26
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]) 

播放器打印结果

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

相关问题 更多 >

    热门问题