В настоящее время я работаю над игрой в блэкджек, и, поскольку у меня в настоящее время он структурирован, у меня есть класс рук, который является списком объектов Карты, и я пытаюсь ссылаться на конкретный карты в руке.Объект «Рука» не поддерживает индексирование
def get_move(self):
if self.balance > self.bet and not self.isSplit:
if self.hand[0].point == self.hand[1].point:
Проблема возникает в этой третьей строке. Я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "driver.py", line 126, in <module>
player.get_move()
File "/home/ubuntu/workspace/finalproject/human_player.py", line 29, in get_move
if self.hand[0].point == self.hand[1].point:
TypeError: 'Hand' object does not support indexing
Почему он не пропускает мой указатель через Руку? Вот конструктор моего класса рук:
class Hand:
def __init__(self):
self.hand = []
EDIT: Я создавать объекты рук для каждого из игроков в моем основном методе:
# creating the dealer for the game
dealer_hand = hand.Hand()
dan_the_dealer = dealer.Dealer(dealer_hand)
# for however many players you start with, add each new player to an array of players
for i in range(num_players):
player_name = input("\nWhat is Player %i's name?\n" % (i+1))
new_hand = hand.Hand()
new_player = human_player.HumanPlayer(player_name, starting_balance, 0, new_hand)
players.append(new_player)
Возможно, вы не переопределяете 'hand' для объекта' Hand' где угодно? – Iluvatar
Это сообщение об ошибке указывает, что 'self.hand' является объектом' Hand', а не списком. Ничто в коде, который вы показали, не приведет к тому, что это произойдет. Таким образом - проблема заключается в коде, который вы не показываете. Поскольку вы не показываете код, содержащий ошибку, мало кто может сделать, чтобы помочь. –
Я так не верю. Если бы я искал признак этого, как бы это выглядело? – macschmidt33