0
チェスゲームを作成しようとしていて、私のPawnを移動しようとしているときに上記のエラーが発生しています。 my_board[0][0].passive_move()
の私の最初の呼び出しはうまく動作し、オブジェクトを2番目のリストに正しく移動します。しかし、私はすぐにそれを呼び出すと、オブジェクトを3番目のリストに移動するのではなく、タイトルにエラーが表示されます。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()」の2行目の意味は分かりますか? –
オブジェクトの前の位置を元の座標に置き換えませんか?少なくとも私の意図でした。 – Perplexityy
...いいえ、文字列をリストに挿入します。 –