Добавить в цитаты Настройки чтения

Страница 50 из 89



– Дай сюда эту чертову штуку! – сказал Дэвид, отбирая у Чарли флакон.

– Я думаю, это может нам пригодиться, – невинным тоном произнес Чарли. – Только надо приделать устройство для дистанционного управления.

Из дальней комнаты вышла Рози, держа в руках блестящий цилиндр, с которого свисали провода.

– Это не подойдет? Кажется, это соленоидный переключатель.

– Да, – сказал Дэвид. – Но вряд ли он сможет развить достаточное давление, чтобы сжать этот флакон. Они там разные? Нужно что-нибудь побольше.

– Не забывайте – нужен еще механизм дистанционного управления, – напомнил Чарли. – Если только вы не хотите выйти туда и обрызгать эту дрянь собственноручно.

Мае выбралась из подвальчика, держа в руках тяжелый металлический цилиндр. Она подошла к умывальнику, прихватив по пути бутыль с жидкостью соломенного цвета. Потом надела толстые прорезиненные перчатки и начала смешивать изотопы с жидкостью. Счетчик радиации над мойкой затрещал.

В наушнике раздался голос Рики:

– Ребята, вы ничего не забыли? Если даже у вас будет дистанционное управление, как вы собираетесь заставить облако приблизиться к опрыскивателю? Я почему-то сомневаюсь, что рой просто прилетит и зависнет где надо, пока вы будете его опрыскивать.

– Мы придумаем, чем его подманить, – сказал я.

– Чем это, например?

– Их можно приманить кроликом.

– Но у нас нет кролика.

Чарли сказал:

– Знаешь, Рики, у тебя очень негативное мышление.

– Я всего лишь сообщаю вам факты.

– Спасибо, что поделился умными мыслями, – заявил Чарли.

Так же как Мае, Чарли тоже заметил, что Рики всеми силами пытается нам помешать. Рики как будто хотел, чтобы рои уцелели. В этом не было никакого смысла. Однако он вел себя именно так.

Я хотел бы сказать Чарли кое-что относительно Рики, но через переговорные устройства меня бы услышали все. Такова неприятная сторона современных средств связи – твои слова может подслушать кто угодно.

– Эй, ребята! – окликнул нас Бобби Лембек. – Как там у вас дела?

– Разбираемся тут, что к чему. А что?

– Ветер ослабевает.

– Какая сейчас скорость ветра? – спросил я.

– Пятнадцать узлов. А было восемнадцать.

– Пятнадцать – не так уж мало, – сказал я. – Все в порядке.

– Я знаю. Просто предупреждаю вас.

В соседней комнате Рози спросила:

– Что такое термит? – она держала в руках пластиковую коробку, наполненную металлическими цилиндриками размером с большой палец.

– Поосторожнее с ними, – сказал Дэвид. – Наверное, это осталось после строителей. Видимо, они делали термитную сварку.

– Но что это такое?

– Термит – это смесь алюминия и оксида железа, – пояснил Дэвид. – Он дает очень высокую температуру горения – три тысячи градусов – и горит так ярко, что смотреть невозможно. Термитом плавят сталь для сварки.

– Много там таких штук? – спросил я у Рози. – Возможно, они нам пригодятся сегодня ночью.

– Там их четыре ящика. – Она достала один цилиндрик из коробки. – А как их поджигают?

– Осторожнее, Рози. Они в магниевой оболочке. Могут вспыхнуть от любого случайного источника тепла.

– Даже спичкой можно поджечь?

– Если хочешь остаться без руки. Лучше использовать сигнальные ракеты или осветительные патроны. Что-нибудь с фитилем.

– Понятно, – сказала Рози и скрылась за углом.

Счетчик радиации все еще щелкал. Я повернулся к умывальнику. Мае уже закрыла контейнер с изотопом и теперь переливала золотистую жидкость в бутылку из-под «Виндекса».

– Эй, ребята, слышите меня? – это снова был Бобби Лембек. – Я наблюдаю некоторую нестабильность. Ветер затихает. Скорость уже упала до двенадцати узлов.

– Хорошо, – сказал я. – Не нужно сообщать нам о малейшем изменении, Бобби.

– Просто я заметил нестабильность, вот и все.

– Я думаю, пока нам ничего не угрожает, Бобби.

Как бы то ни было, Мае должна справиться за несколько минут. Я подошел к компьютерному терминалу и включил его. Экран засветился, появилось меню. Я спросил:

– Рики, могу я вывести код роя на этот монитор?

– Код? – переспросил Рики. В его голосе мне послышались тревожные нотки. – Зачем тебе понадобился код?

– Я хочу посмотреть, что вы, ребята, туда наворотили.

– Зачем?

– Рики, бога ради, могу я его увидеть или нет?

– Можешь, конечно, можешь. Все версии кода в директориях через слэш после кода. Они запаролированы.

Я нашел нужную директорию. Но войти в нее не смог.

– Какой пароль, Рики?

– Пароль – л-а-н-г-т-о-н, все буквы строчные.

– Хорошо.



Я ввел пароль. И вошел в директорию, в которой были собраны все модификации программы, с указанием размера файла и даты изменений. Все документы были больших размеров. Это означало, что в них – все программы для разных аспектов системы роя. Потому что коды самих частиц обычно бывают маленькими – всего несколько строчек, на восемь-десять килобайт, не больше.

– Рики.

– Да, Джек.

– Где коды частиц?

– Их там нет?

– Черт тебя дери, Рики, перестань увиливать!

– Слушай, Джек, это не я занимался архивами…

– Рики, это рабочие файлы, а не архивы, – сказал я. – Скажи мне, где они?

Он помолчал немного, потом сказал:

– Там должна быть субдиректория Си-Ди-Эн. Коды в ней.

Я прокрутил страничку вниз.

– Вижу.

В этой директории я нашел список файлов, все – очень маленькие. Судя по датам модификаций, они начали создаваться около шести недель назад. А за последние две недели ничего нового не появилось.

– Рики, вы не меняли коды последние две недели?

– Да, примерно столько.

Я открыл самый последний документ.

– Вы делали краткие сводки?

Когда эти ребята работали в моей группе, я всегда требовал, чтобы они составляли краткое описание структуры программы на обычном языке. Такую сводку просмотреть гораздо проще, чем документацию внутри самого программного кода. К тому же, когда требуется сжато описать структуру программы, нередко удается решить логические проблемы.

– Они должны быть там же, – сказал Рики.

Я увидел на экране следующее:

/*Инициализировать*/

Для j=1 до LxV выполнить

Sj=0 /*установить начальный запрос до 0/

Закончить для

Для i=L до z выполнить

Для j=1 до LxV выполнить

Sij = (состояние (x,y,z))/*пороговые параметры агента*/

0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/

Реакция = 0/*начало реакции агента*/

Зона = z(i)/*начальная зона, не изученная агентом*/

Охват = 1/*активация перемещения агента*/

Закончить для

Закончить для

/* Главное*/

Для k1=1 до RVd выполнить

Для tm=1 до nv выполнить

Для S=L до j выполнить/*выслеживание окружающего*/

0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/

Sij (состояние (x,y,z))/*агент находится в движении*/

SikL = (действительное(x,y,z))/*отслеживать ближайшие агенты*/

Я какое-то время изучал записи, пытаясь понять, что они в них изменяли. Потом я пролистал вниз, до описания окончательного кода, чтобы посмотреть, как в конце концов они это выполнили. Но самого главного кода в папке не было. Вся совокупность поведения частиц была обозначена как объект со ссылкой на нечто под названием «комп. стат.».

– Рики, – сказал я. – Что такое «комп. стат.»? Где это?

– Должно быть там…

– Его здесь нет.

– Ну, я не знаю… Может, его скомпилировали.

– Но мне-то от этого не легче, правда? – Скомпилированный код прочитать невозможно. – Рики, я хочу увидеть этот чертов модуль. В чем проблема?

– Да нет никакой проблемы… Мне придется его поискать, вот и все.

– Хорошо…

– Я сделаю это, когда вы вернетесь.

Я посмотрел на Мае.

– Ты можешь найти код?

Она покачала головой. По выражению ее лица я понял, что кода мне не видать как своих ушей, что Рики будет придумывать все новые и новые отговорки, чтобы не допустить меня к нужной информации. Я только не понимал почему. В конце концов, я ведь затем сюда и приехал, чтобы помочь им разобраться с кодом. Я эксперт в этой области.