0
我试图写一个国际象棋游戏,并试图移动我的典当时得到上述错误。我的第一个电话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
...不,它向列表中注入一个字符串。 –