def apply(self, board: Board) -> Board: pos = board.free_node_position() if pos in board.right_col(): raise IllegalMoveException(f"Cannot apply move {self.step}") return super()._flip_positions(board, pos, pos + 1)