private boolean checkScoutMove(
            GameState state, Piece piece, int row, int column) {
        
        boolean result = true;
        Square square;
        if (column != piece.getColumn()) {
            int start = Math.min(column, piece.getColumn());
            int end = Math.max(column, piece.getColumn());
            for (int i = start + 1; i < end; i++) {
                square = state.getSquare(row, i);
                if (!square.isActive() || square.isOccupied()) {
                    result = false;
                }
            }
        } else {
            int start = Math.min(row, piece.getRow());
            int end = Math.max(row, piece.getRow());
            for (int i = start + 1; i < end; i++) {
                square = state.getSquare(i, column);
                if (!square.isActive() || square.isOccupied()) {
                    result = false;
                }
            }
        }
        return result;
    }