ブラックジャックプログラムを作成しようとしていますが、デッキオブジェクトから.append()を使用する別のオブジェクトにメッセージを送信しようとすると、AttributeErrorが発生し続けます。オブジェクトには「追加」がありません。
関連すると思うコードは次のとおりです。
class Deck(Hand):
def deal(self, players, per_hand= 1):
for rounds in range(per_hand):
for hand in players:
if self.hand:
top_card = self.hand[0]
self.give(top_card,hand)
プレーヤーパラメータは、以下を使用してインスタンス化したオブジェクトのタプルです。
class Bj_player(Player,Hand):
def __init__(self,name,score= 0,status= None):
self.name = name
self.score = score
self.status = status
self.hand = Hand()
Player基本クラスには、ユーザーからのいくつかの入力以外は何も含まれていません。上記は私が間違っているところですか?
class Hand(object):
"""a hand of cards"""
def __init__(self):
self.hand = []
def add(self, card):
self.hand.append(card)
def give(self,card,other_hand):
if self.hand:
self.hand.remove(card)
other_hand.add(card)
else:
print("EMPTY ALREADY. COULD NOT GIVE")
str部分を取り出して切り詰めました。私が得ているエラーはこれです:
line 44, in add
self.hand.append(card)
AttributeError: 'Hand' object has no attribute 'append'
私はかなり新しいので、簡単に説明すればするほどよいでしょう。ありがとう。
また、それが役立つ場合に備えて、これが私が物事を始める方法です:
deck = Deck() #populated and all that other stuff
total_players = Player.ask_number("How many players will there be? (1-6): ",1,6)
for player in range(total_players):
name = input("What is the player's name? ")
x = Bj_player(name)
roster.append(x)
deck.deal(roster,2) #error =(