我正在尝试使用 pygame 和 OOP 在 python 中制作扑克游戏。我之前从 udemy 类(class)中制作了一个基于文本的二十一点游戏,我试图使用一些相同的原则来创建我的套牌,但它不起作用。我遇到的问题是我想创建 52 个卡片对象,并且我希望每个卡片对象具有三个属性(花色、等级和 png 文件)。
class Card:
def __init__(self, suit, rank, pic):
self.suit = suit
self.pic = pic
self.rank = rank
class Deck:
def __init__(self):
self.deck_comp = []
def create_deck(self):
for suit in suits:
for rank in ranks:
for pic in deck:
self.deck_comp.append(Card(suit, rank, pic))
我感觉问题出在三个 for 循环上。在基于文本的二十一点游戏中,牌只需要有两个属性。对于这个游戏,我需要纸牌对象有图片、值(value)和花色,这样我就可以显示它们并进行比较。
suit 是四个 suit 字符串的列表 Rank 是作为字符串的卡片名称列表, pic 是一个包含 52 个 .png 文件的列表(一副牌中的每张卡片一个)
最佳答案
将所有 png 名称保存在字典中,并在 Card
类中分配图像不是更明智吗?
class Card:
def __init__(self, value, suit):
self.value = value
self.suit = suit
self.img = png_images[f'{value}{suit}']
class Deck:
def __init__(self, shuffle_cards=True):
self.cards = []
self.shuffle_cards = shuffle_cards
self.create()
def create(self):
for _ in range(number_of_decks):
for val in (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14):
for suit in ("Hearts", "Spades", "Clubs", "Diamonds"):
self.cards.append(Card(val, suit))
if self.shuffle_cards:
shuffle(self.cards)
关于python - 有人可以帮我在 pygame 中为扑克游戏创建一副纸牌吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56293239/