【发布时间】:2021-03-09 02:08:39
【问题描述】:
我正在用 python 开发一个德州扑克游戏,并希望遍历一个包含 7 张牌的完整手牌数组(2 在洞中 + 5 在棋盘上)。该数组包含 Cards 类的元素,其中 Card 类的构造函数是
class Card:
def __init__(self, suit, val):
self.suit = suit
self.value = val
所以,我在 7 张随机牌的“玩家”类中有一个“手”数组,其中花色是 4 个字符串之一(黑桃、梅花、红心、菱形),值是 9 个数字之一(2 -10) 或 4 弦 (jack-ace)。我想遍历数组以检查列表是否包含扑克牌中的任何手,但我无法弄清楚如何从数组中“提取”牌的花色/价值。我已经在我的“玩家”类中启动了一个方法来检查西装,这里西装是黑桃。
class Player:
def __init__(self, name):
self.name = name
self.pocket = []
self.hand = []
def spadeChecker(self):
card = Card("Blank", 0)
for i in self.hand:
card = self.hand[i]
if(card.suit == "Spade"):
print("Hi! you have a spade!")
else:
pass
从我的终端运行程序时,我收到一条 TypeError 消息:
in spadeChecker card = self.hand[i] TypeError: list indices must be integers or slices, not Card
我知道我的方法很糟糕,但我对此很陌生,只是不知道如何让它发挥作用。有什么建议吗?
谢谢
【问题讨论】:
-
很好的描述,但是您的代码缺少一些类,例如 Card。请显示您编写的工作代码,以便我们可以复制粘贴并运行它并更轻松地回答。在此处查看 MRE:stackoverflow.com/help/minimal-reproducible-example
标签: python arrays subclass poker playing-cards