我正在尝试制作一个二十一点游戏,我希望可以选择处理额外的卡片,但是我遇到的是我正在尝试制作能够处理其他卡片的功能,但是我我不确定最好的方法。我知道如何做到这一点,但我不知道如何实现它。
思想: 有一个能够处理附加卡的功能,并且+1将一个变量计算玩家已经拥有多少张牌,从2开始,第一次运行该功能时,将给玩家卡#3。然后该功能将随机给出一张牌,然后将卡片(也许是playerCardThree,playerCardFour)返回,一次允许限制为5张牌。这是我希望它做的一个例子,但我不确定它是否有效。
def deal():
playerCardTotal + 1
if playerCardTotal >= 5:
print("Error detected, returning...")
play()
newPlayerCard = randint(1,10)
print("You are given card ",playerCardTotal,"it is a",newPlayerCard)
newPlayerCard = playerCard(4)
如果有人可以帮助我做类似的事情,或者可能引导我找到一种能够实现目标清洁的方法,因为我确信我所想到的并不是最有效的方法。
答案 0 :(得分:1)
如何在类中使用计数器,每次实例化时都会自动增加。然后每张卡都是一个实例。如您在问题中所述,当计数器超过5时,您可以引发错误。游戏的简化起点可能是这样的(你应该根据需要详细说明):
import random
class MyGame():
counter = 0
def __init__(self):
MyGame.counter += 1
def deal_card(self):
self.card = random.randint(1,10)
if self.get_count() > 5:
raise RuntimeError('too many cards have been played')
print("You are given card #", self.get_count())
def get_count(self):
return MyGame.counter
a = MyGame()
a.deal_card()
b = MyGame()
b.deal_card()