Python-如何将操作应用于列表中的每个对象?

时间:2018-08-24 16:03:35

标签: python

我正在尝试创建一个简单的扑克游戏来教自己使用python,但我很难给每个玩家对象都提供两个底牌,而不是让玩家列表中的每个玩家对象都拥有两个单独的卡,而每个玩家对象都没有列表中有两张相同的卡片。

我有一种感觉,我没有创建玩家对象的单独实例,而是玩家列表中的每个元素都指向同一个对象,但是据我所知(使用我极其有限的python知识)创建了3个相同类的不同对象

预期结果

玩家列表中的每个玩家对象的孔牌列表中都有两张不同的牌

实际结果

玩家列表中的每个玩家对象在孔牌列表中都有相同的两张牌

class player:
    holecards=[("",""),("","")]
    chips=1000
    lastaction = 'call' #raise, check, call, fold
##start of game

#init each player
player_count = 3#int(input("How many players? "))
players=[player() for i in range(player_count)]

#init deck
suits = ["s", "c", "d", "h"]
faces = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"]
deck = set(it.product(faces, suits))
#
round=0

##round
round=round+1;
pot = 0
drawn_cards = random.sample(deck,(5 + 2 * player_count))

for i in range(player_count):
    for l in range(0,2):
        players[i].holecards[l] = drawn_cards.pop(random.randint(0,len(drawn_cards)-1))

0 个答案:

没有答案