-1
    from Card import Card


    class Hand(object):
        def __init__(self):
            self.cards=[]


        def takeCards(self, cards):
            self.cards.append(card)
            pass

        def clear(self):
            self.card=[]
            pass

        def getTotal(self):
            for card in slef.cards:
                if card.value >21 and card ==11:
                    return 1
                elif not card.value:
                    return None
                else:
                    total+=card.value        
            pass

        def isBusted(self):
            if getTotal>21:
                return True


        def __str__(self):
            if self.__cards:
                card = ""
                for i in self.__cards:
                    card += str(i) + "\t"
            else:
                card = "Empty"
            return card + "\t(value " + str(self.getTotal())+")"



from Hand import Hand


class Dealer():

    def __init__(self,name):
        super(Dealer,self).__init__() 
        self.name = name
        pass

    def takeCards(self,cards):
        self.__hand.takeCards(cards)
        pass

    def clearHand(self):
        self.Hand.clear(card)
        pass

ブラックジャックについてのゲームを書いていますが、修正できないバグがあります...2つのクラスがあります。コードをテストすると、プログラムは、Dealerオブジェクトには属性「Hand」がないと言います。クリアハンドのデフ。これを修正する方法がわかりません。

4

1 に答える 1

1

私が見る最初の問題は、あなたが自分自身を介してHandにアクセスしているということです。ディーラークラスのどこでハンドクラスをインスタンス化するかはわかりません。ディーラークラスで次のことを試すことができます。

class Dealer(object):

    def __init__(self,name):
        super(Dealer,self).__init__() 
        self.name = name
        self.__hand = Hand() # Instance Hand so you can use its contents.
        pass

    def takeCards(self,cards):
        self.__hand.takeCards(cards)
        pass

    def clearHand(self):
        # self.Hand.clear(card)
        self.__hand.clear(card) # fixed this to point to our instance
        pass
于 2013-02-25T04:17:57.557 に答える