Я пытаюсь написать шахматную игру и получить вышеуказанную ошибку при попытке переместить мою Пешку. Мой первый звонок my_board[0][0].passive_move()
отлично работает и правильно перемещает объект во второй список. Но если я снова его вызову, я получу ошибку в заголовке, вместо того, чтобы переместить объект в третий список.AttributeError: объект 'str' не имеет атрибута (метода)
__author__ = 'admin'
class Pawn:
def __init__(self, y, x):
self.board = my_board
self.y = y
self.x = x
def __str__(self):
return "Pawn"
def passive_move(self):
self.board[self.y+1][self.x] = self
self.board[self.y][self.x] = chr(self.y+65)+str(self.x+1)
self.y += 1
class ChessBoard:
def __init__(self):
self.board = self.create_board
def create_board(self):
game_board = []
letters = ["A", "B", "C", "D", "E", "F", "G", "H"]
for x in range(len(letters)):
game_board.append([])
for y in range(1, 9):
game_board[x].append(str(letters[x])+str(y))
return game_board
if __name__ == "__main__":
my_board = ChessBoard().create_board()
for x in range(len(my_board)):
my_board[0][x] = Pawn(0, x)
my_board[0][0].passive_move()
my_board[0][0].passive_move()
print(my_board)
Вы понимаете, что делает вторая строка в 'Pawn.passive_move()', правильно? –
Не заменяет ли предыдущую позицию объекта исходной координатой? По крайней мере, это было моим намерением. – Perplexityy
... Нет, он вводит строку в список. –