«ЕКСПЕРИМЕНТ ЗАКІНЧЕНО». Тоді що за чортівня з тими ботами?
— Ось код процедури, скомпільованої в їхні голови перед початком тесту.
Тимур нахилився до монітора. З подивом відмітив, що інтерфейс debugger’а йому не відомий. На щастя, синтаксис нагадував С++, тому з кодом проблем не було.
int TEST_010524 ()
{
Targets DOLLS (System.GetTargets (gt_Front, gt_Type1));
if (!DOLLS) return 0;
int NT = DOLLS.GetTargetsNumber ();
for (int i=0; iNT; i++)
{
System.MoveToObject (DOLLS[i], 1, 0, 0);
DOLLS[i].Destroy;
}
System.Macros ();
Clear ();
if DOLLS.AllDestroyed () return 1
else return 0;
}
Процедура була надзвичайно простою. Оголошувалася змінна DOLLS. Далі системна функція GetTargets аналізувала об’єкти попереду бота і записувала в DOLLS масив знайдених мішеней типу gt_Type1.
— gt_Type1 — це глобальна константа, що описує манекени, — розтлумачив Ральф.
Метод GetTargetsNumber визначав кількість мішеней. Потому запускався цикл, на кожному кроці якого бот рухався до мішені і ліквідовував її. Для цього використовувались функції MoveToObject та Destroy. Наостанок очищалася системна пам’ять і здійснювалася перевірка, чи всі манекени знищені. Для Тимура лишалося невідомим одне — призначення функції System.Macros.
Тимур продивлявся код, коли раптом усвідомив очевидне: ботів не програмували на знищення кулеметів. У їхній свідомості (точніше, у віртуальному баченні світу) М134 просто не існували! Боти бачили лише манекени. Попри це «малюки» знайшли «Мініґани». Більше того, боти силкувались вивести їх з ладу через дві хвилини після того, як тестові програми витерли з мозкових плат.
— А тепер подивись на візуалізацію результатів енцефалографії.
На екрані з’явилося нове вікно, розділене навпіл. Ліву частину займала 3D-модель мозку. Справа прокручувався відеозапис експерименту. Без пришвидшення. Перші двадцять секунд мозкові плати палали червоним. Працювали на повну. Решта мозку лишалася сірою. Лиш де-не-де проступали рожеві плями. Знищивши останній манекен, боти завмерли.
— В цьому місці процедура видаляється з мозкових плат, — сказав Ральф.
Мізки на 3D-діаграмі стали попелясто-сірими. Тимур перевів погляд на праву частину вікна програми. Бот очуняв і потягнувся до кулеметів. Програміст знову подумав: програма ні до чого. А тоді, глянувши наліво, на діаграму, що відображала активність мозку, похолов. Мізки бота лишались пасивними — сірими. Зате центральна частина мозкових плат набула яскраво-червоного забарвлення. Бот не думав. Бот підкорявся імпульсам з процесора.
Тимур впирався у глухий кут. Він вірив, що боти неспроможні реалізовувати складну поведінку; запрограмована істота фізично не здатна на таке. У той же час факти твердили протилежне: хлопчиками керувала програма.
Ральф зиркнув на наручний годинник:
— Закругляємось, Тимуре. Ми вже спізнились на вечерю. За кілька хвилин Кейтаро накаже заблокувати двері та опустити жалюзі в корпусі «DW».
— Можна ще питання? Перед приїздом американців ботів випускали у коридор?
— Звісно, ми їх вишколили. Проганяли двічі. Тільки замість М134 на стіні висіли дві пейнтбольні гармати.
— Тоді були якісь відхилення?
— Жодних.
Ніч з неділі на понеділок минула без пригод. Загорожа стояла під напругою; ботів чекали. Втім, ті наче крізь землю провалилися.
Після сніданку Кейтаро Рока зібрав групу на планову нараду.
— Як успіхи, Тимуре? — без розшаркувань почав Джеп.
Програміст склав руки на столі.