0

我正在尝试创建一个使用类来运行的二十一点游戏。我相信我已经成功地制作了一个针对卡片的课程

class Card(object):
    def __init__(self,suit,number):
        self.suit=suit
        self.number=number

然后我做了一个类,它需要一副牌,然后洗牌,它的发牌也是如此,我认为这个类也是正确的(我对发牌功能有点不确定)

class DeckofCards(object):
    def __init__(self,deck):
        self.deck=deck
        self.shuffledeck=self.shuffle()
        print(self.shuffledeck)
    def shuffle(self):
        b=[]
        count=0
        while count<len(self.deck):
            a=randrange(0,len(self.deck))
            if a not in b:
                b.append(self.deck[a])
                count+=1
        return(b)
    def deal(self):
        if len(self.shuffledeck)>0:
            return(self.shuffledeck.pop(0)) #removes the card from the deck and deals it
        else:
            shuffle(self)
            return(self.shuffledeck.pop(0))

然后我为玩家创建了一个类,这就是我开始困惑的地方,我希望插入老师的直接问题是可以的,因为这对我来说非常模棱两可和困惑。

类播放器(对象):

“”” 这个类是为游戏中的玩家准备的(庄家被认为是玩家,虽然我可以为庄家创建一个单独的类。)构造函数有 6 个属性:玩家的名字,手牌(最初是一个空列表),布尔值inout,初始化为True(表示玩家“入”),布尔值blackjack,初始化为False(表示玩家没有二十一点),整数money,表示玩家拥有的总金额,得分,初始化为 0,整数出价,初始化为 0,将保存玩家当前的出价。

这是我的尝试

class Player(object):
    def __init__(self,name,hand,inout,money,score):
        self.name=name
        self.hand=hand
        self.inout=inout
        self.money=money
        self.score=score
        self.blackjack=self.blackjacksearch()
    def blackjacksearch(self): #not sure if any of this works
        if Card('H','J') in self.hand:
            return(False)
        if Card('S','J') in self.hand:
            return(False)
        if Card('C','J') in self.hand:
            return(False)
        if Card('D','J') in self.hand:
            return(False)
        else:
            return(True)

完整的路线可以在这里找到

我只是在寻找一些方向,因为我一无所知,我们的教授一点帮助也没有。

4

2 回答 2

0

假设玩家总是从他们的手牌的空列表开始,那么你不必进行二十一点搜索,因为他们总是没有二十一点(假),他们总是'in'(真),他们将有 0得分和 0 出价。

仅仅因为你的教授说“构造函数有六个属性”并不意味着“构造函数必须接受六个参数”——在 Python 中,因为没有声明一个类必须有哪些变量,所以将它们设置在构造函数,即使它只会使用默认值。我只会将名称传递给构造函数,而 Player 的其余属性将可以通过方法进行更改(当然,这些方法只允许将其从一个有效状态移动到另一个有效状态并处理所有副作用)

于 2013-05-06T22:50:29.487 回答
0

如果您需要 java 中 blackjack 的参考实现,它可以帮助您对类进行建模。https://github.com/alkber/blackjack

于 2014-03-21T04:24:15.353 回答