diff --git a/src/logic/pieces/pawn.py b/src/logic/pieces/pawn.py index 8de40b7..0c292ce 100644 --- a/src/logic/pieces/pawn.py +++ b/src/logic/pieces/pawn.py @@ -1,5 +1,6 @@ -from logic.move import Move +from logic.move import Move, PieceMove from logic.pieces.piece import Piece +from logic.position import Position class Pawn(Piece): def legal_moves(self, board) -> list[Move]: @@ -12,7 +13,7 @@ class Pawn(Piece): (self.colour == self.BLACK and (capturable_piece := board.piece_at(self.pos.x - 1, self.pos.y - 1))) ): if capturable_piece.colour != self.colour: - ret.append(capturable_piece.pos) + ret.append(PieceMove(self, capturable_piece.pos, is_capturing = True)) # can we capture to the right? if self.pos.x < 7 and ( @@ -21,18 +22,20 @@ class Pawn(Piece): (self.colour == self.BLACK and (capturable_piece := board.piece_at(self.pos.x + 1, self.pos.y - 1))) ): if capturable_piece.colour != self.colour: - ret.append(capturable_piece.pos) + ret.append(PieceMove(self, capturable_piece.pos, is_capturing = True)) if self.colour == Piece.WHITE: for dy in range(1, 3 if self.pos.y == 1 else 2): if self.pos.y + dy > 7 or board.piece_at(self.pos.x, self.pos.y + dy): break - ret.append(Position(self.pos.x, self.pos.y + dy)) + pos = Position(self.pos.x, self.pos.y + dy) + ret.append(PieceMove(self, pos)) else: for dy in range(1, 3 if self.pos.y == 6 else 2): if self.pos.y - dy < 0 or board.piece_at(self.pos.x, self.pos.y - dy): break - ret.append(Position(self.pos.x, self.pos.y - dy)) + pos = Position(self.pos.x, self.pos.y - dy) + ret.append(PieceMove(self, pos)) print(ret)