diff --git a/src/logic/board.py b/src/logic/board.py index 024b92e..21d3740 100644 --- a/src/logic/board.py +++ b/src/logic/board.py @@ -10,8 +10,6 @@ from logic.position import Position from typing import Type class Board: - KING_SIDE_CASTLE = "king side castle" - QUEEN_SIDE_CASTLE = "queen side castle" def __init__(self) -> None: self._white: dict[Position, Piece] = {} self._black: dict[Position, Piece] = {} diff --git a/src/logic/move.py b/src/logic/move.py new file mode 100644 index 0000000..6195a75 --- /dev/null +++ b/src/logic/move.py @@ -0,0 +1,23 @@ +from logic.pieces.piece import Piece +from logic.position import Position +from enum import Enum + +class Move: + def to_algebraic(self) -> str: + raise NotImplementedError("The move can't be translated to algbraic notation, as it was not implemented") + + @staticmethod + def from_algebraic(move: str) -> "Move": + raise NotImplementedError("The move can't be translated from algbraic notation, as it was not implemented") + + +class PieceMove(Move): + def __init__(self, piece: Piece, pos: Position, is_capturing: bool) -> None: + super().__init__() + self.piece = piece + self.pos = pos + self.is_capturing = is_capturing + +class Castle(Move, Enum): + KING_SIDE_CASTLE = "O-O" + QUEEN_SIDE_CASTLE = "O-O-O"