Python牌游戏追踪赢家



大家好,我刚开始学习python,遇到了一个问题:我正在写一个纸牌游戏的代码,口哨的心。在这个游戏中,有13轮和4名玩家,在每一轮中,每个玩家都出一张牌,牌最高的一方获胜,获胜者带领下一轮。所以如果第一轮的顺序是1234,所出的牌是[2,3,10,A]所以玩家4赢得了第一轮,下一轮的顺序将是4123,所打出的牌是[5,1,8,Q]。我只是想知道我如何记录哪张牌是由哪个玩家玩的,就像在第二轮玩家4玩了5,玩家1玩了1…等等,还有每轮的顺序,谁先打,谁后打……等。如果不够清楚,我很抱歉:(

你可以使用一个元组列表,每个元组的第一个元素是玩家号码,第二个元素是打出的牌,例如

round1 = [(1, 2), (2, 3), (3, 10), (4, 'A')]
round2 = [(4, 5), (1, 1), (2, 8), (3, 'Q')]

你就会有一个回合列表来代表一个游戏的13回合:

rounds = [[(1, 2), (2, 3), (3, 10), (4, 'A')],
          [(4, 5), (1, 1), (2, 8), (3, 'Q')],
          ...
          [(3, 2), (4, 10), (1, 'K'), (2, 'J')]

也可以只记录每轮领先的玩家数量,因为假设游戏总是朝着相同的方向进行,那么剩余的玩家可以从第一轮中派生出来。你可以通过一个自定义类,一个命名元组,或者甚至通过将主要玩家存储在每个轮列表的第一个元素中来实现这一点,但我认为这使得它比需要的更复杂。

注:标准牌组中没有1

最新更新