ChessWithQuests

Rook (model.pieces.rook)

model.pieces.rook

Rook chess piece implementation with orthogonal ray moves and moved state.

Rook

Bases: Piece

Rook piece with rank and file ray marching movement and castling readiness tracking.

Source code in src/model/pieces/rook.py
class Rook(Piece):
    """Rook piece with rank and file ray marching movement and castling readiness tracking."""

    def __init__(self, color: int, piece_type: str = "rook"):
        """Initialize a Rook piece.

        Args:
            color: Color identifier (1 for White, -1 for Black).
            piece_type: Piece descriptor (default: "rook").
        """
        vectors = [(0, 1), (0, -1), (1, 0), (-1, 0)]
        super().__init__(
            color=color,
            piece_type=piece_type,
            vectors=vectors,
            attack_vectors=vectors,
            can_jump=False,
            name="Rook",
        )
        self._has_moved = False

    def hasMoved(self) -> bool:
        """Check whether the rook has moved from its initial square.

        Returns:
            bool: True if the rook has moved, False otherwise.
        """
        return self._has_moved

    def setMoved(self, moved: bool = True) -> None:
        """Update whether the rook has moved.

        Args:
            moved: New moved state flag (default: True).
        """
        self._has_moved = moved
__init__(color, piece_type='rook')

Initialize a Rook piece.

Parameters:

Name Type Description Default
color int

Color identifier (1 for White, -1 for Black).

required
piece_type str

Piece descriptor (default: "rook").

'rook'
Source code in src/model/pieces/rook.py
def __init__(self, color: int, piece_type: str = "rook"):
    """Initialize a Rook piece.

    Args:
        color: Color identifier (1 for White, -1 for Black).
        piece_type: Piece descriptor (default: "rook").
    """
    vectors = [(0, 1), (0, -1), (1, 0), (-1, 0)]
    super().__init__(
        color=color,
        piece_type=piece_type,
        vectors=vectors,
        attack_vectors=vectors,
        can_jump=False,
        name="Rook",
    )
    self._has_moved = False
hasMoved()

Check whether the rook has moved from its initial square.

Returns:

Name Type Description
bool bool

True if the rook has moved, False otherwise.

Source code in src/model/pieces/rook.py
def hasMoved(self) -> bool:
    """Check whether the rook has moved from its initial square.

    Returns:
        bool: True if the rook has moved, False otherwise.
    """
    return self._has_moved
setMoved(moved=True)

Update whether the rook has moved.

Parameters:

Name Type Description Default
moved bool

New moved state flag (default: True).

True
Source code in src/model/pieces/rook.py
def setMoved(self, moved: bool = True) -> None:
    """Update whether the rook has moved.

    Args:
        moved: New moved state flag (default: True).
    """
    self._has_moved = moved
ChessWithQuests