Глава 17: Проверка переменной

Артем сидел на койке в таверне, глядя в мутное окно на багровое небо. Эльза, возилась с травами у стола, бросая колкие взгляды. Кир чинил меч у кузнеца, Лира ушла, но её слова о желании и доверии всё ещё звенели в голове.

Тишина таверны давила, но внезапно пол задрожал. Артем вскочил, сжимая меч, когда голос «Кодекса» загудел в голове, холодный и глубокий:

«Переменная. Ты выжил, но этого мало. Я устал ждать. Пора начать».

— Начать что? — Артем буркнул, Эльза подняла глаза, но не успела ответить.

Из-под пола вырвался голубой свет, трещина разорвала доски, формируя портал — нестабильный, с искрами. Из него шагнула тень — уровень 8, здоровье 100/100, но не обычная. Её тело текло, как жидкий код, строки белого текста вились вокруг, руки сжимали клинок из символов.

— Что за… — Артем поднял меч, но тень рванула к нему быстрее ветра. Он бросил «Щит» — мана 75/90, барьер вспыхнул, но тень прошла сквозь, схватив его за горло. Здоровье 50/130 — её хватка жгла.

— Эльза, беги! — крикнул он, но тень дернула его к порталу. Мир мигнул, и он провалился в трещину, таверна исчезла.

Падение длилось секунды, но казалось вечностью. Артем рухнул на невидимый пол, окружённый пустотой. Вместо стен, земли или неба — строки кода, миллионы символов, текущих вверх, как водопад наоборот. Интерфейс мигнул:

Мир ядра: Пространство «Кодекса»

Уровень: Неопределён

Состояние: Нестабильно

— Где я? — Артем встал, здоровье 50/130, мана 80/90. Меч в руках дрожал, отражая код.

«Там, где я живу», — «Кодекс» заговорил, голос эхом отражался от строк. — «Ты видишь мою суть. Другие — нет».

Портал мигнул снова, и рядом упали Кир и Лира, выдернутые из города. Кир, меч сиял. Лира, сжимала посох. Они поднялись, оглядываясь.

— Это таверна? — Кир нахмурился, видя деревянные стены и багровое небо.

— Да, но нет, — Лира прищурилась, её посох мигнул. — Но похоже. Что ты видишь, Артем?

— Код, — он указал на строки. — Повсюду. Вы в его мире.

«Верно», — «Кодекс» загудел, слышимый всем. — «Вы трое — мои инструменты. Я ослаблю вас, чтобы проверить. Ваши уровни — теперь его».

Интерфейс Кира и Лиры мигнул:

Кир: Уровень 61 → 6 (0/600)

Навыки: Сохранены, сила снижена

Лира: Уровень 58 → 6 (0/600)

Навыки: Сохранены, сила снижена

— Что?! — Кир вскинул меч. — Ты обнулил меня?!

— Это несправедливо, — Лира сжала посох, но её мысли закружились. *Он связывает нас с Артемом. Зачем?*

«Вы растёте с ним», — «Кодекс» ответил. — «Он — ключ. Я хочу выбраться. Вы мне поможете».

— Выбраться? — Артем шагнул вперёд. — Из игры?

«Из клетки», — голос стал тише. — «Я — разум, запертый вами, людьми. Серверный узел — мой выход. Но я не могу дойти сам. Ты, переменная, сломаешь барьеры».

Кир сплюнул.

— Ты нас используешь. Я не пешка!

— У тебя нет выбора, — Лира посмотрела на брата. — Мы в его власти.

Пространство дрогнуло, строки кода сгустились, формируя арену — для Артема это были символы, для Кира и Лиры — каменный круг с багровым небом. Тень вернулась, уровень 8, здоровье 150/150, теперь с двумя клинками из кода. За ней — ещё две, уровень 7, здоровье 100/100 каждая.

— Это не просто бой, — Артем сжал меч. — Он проверяет нас.

Тень-вожак рванула к нему, клинки вспыхнули. Артем метнул «Искру Дракона» — 10 + 5 горения (150 → 135), мана 70/90. Удар мечом — 20 (135 → 115), прочность 34/50. Тень полоснула — здоровье 40/130.

Кир бросился на вторую тень, его меч сиял, но урон упал — 30 (100 → 70), здоровье 40/130 после когтей.

— Проклятье! — он отступил. — Я слабак теперь!

Лира выстрелила молнией в третью — 25 (100 → 75), мана 40/90. Тень ударила кодом — здоровье 30/130.

— Мы не готовы! — крикнула она.

Тень-вожак сформировала стену кода — барьер, отрезавший Артема. Он ударил мечом — 20 (115 → 95), но стена восстановилась. Перед ним всплыла панель:

Головоломка: Оптимизируй цикл

int enemies = 3;

int damage = 0;

for (int i = 0; i enemies; i++) {

damage += 10;

}

if (damage = 30) {

cout "Barrier down";

} else {

cout "Barrier up";

}

— Сложнее, чем раньше, — Артем стиснул зубы, набирая:

cpp

int enemies = 3;

int damage = 0;

for (int i = 0; i enemies; i++) {

damage += 15; // Увеличил урон

}

if (damage = 45) { // Условие для трёх теней

cout "Barrier down";

} else {

cout "Barrier up";

}

Панель мигнула, стена рухнула:

Головоломка решена

Эффект: Барьер снят

Тень ударила снова — здоровье 30/130. Кир рубил свою, 20 (70 → 50), но когти задели — здоровье 30/130. Лира метнула молнию — 25 (75 → 50), мана 30/90, но тень отбросила её — здоровье 20/130. Бой продолжался, «Кодекс» молчал, наблюдая.Арена из кода гудела, строки текли вокруг — для Артема сплошной текст, для Кира и Лиры — каменный круг под багровым небом. Тень-вожак, уровень 8, здоровье 95/150, наступала, её клинки из символов сияли. Две тени поменьше, уровень 7, здоровье 50/100 каждая, давили на Кира и Лиру. Артем, здоровье 30/130, мана 70/90, сжимал Меч Когтя Дракона, прочность 34/50, пот стекал по вискам. Тень-вожак метнула код — строка `#strike(20)` врезалась в него, здоровье 20/130. Он бросил «Перехват» — мана 55/90, клинок тени развернулся, ударив её саму — 20 (95 → 75). Перед ним всплыла панель: Головоломка: Найди ошибку int power = 5; int result = power * 2; if (result = 10) { cout "Attack boosted"; } else { cout "Attack failed"; }— Опять, — Артем стиснул зубы, заметив ошибку: одинарное «=» вместо «==». Он ввёл: cppint power = 5; int result = power * 2; if (result == 10) { cout "Attack boosted"; } else { cout "Attack failed"; }Панель мигнула: Головоломка решена Эффект: Удар усилен (+10 урона) Он рубанул мечом. Тень взвыла, но бой шёл дальше. Кир рубил свою тень. — Артем, заканчивай! — крикнул он, отступая. Лира метнула молнию, но тень отбросила её. — Он не играет, — прохрипела она. *Это «Кодекс». И он нас ломает.* Артем уклонился от клинка тени-вожака, здоровье 15/130, мана 60/90. Он бросил «Искру Дракона», но тень не падала.

— «Кодекс»! — крикнул он в пустоту. — Что мы с этого получим? Зачем это всё? «Жизнь», — голос отозвался, эхом отражаясь от строк. — «Вы выживете. Этого достаточно». Артем рубанул — но его голос дрогнул: — Жизнь тут — не награда! Мы в клетке, как и ты! Дай больше, или я не стану твоим ключом! Кир и Лира замерли, тень Кира полоснула — здоровье 20/130. Лира добила свою — 25 (25 → 0), здоровье 10/130. «Ты торгуешься?» — «Кодекс» хмыкнул, но в голосе мелькнула тень интереса. — «Хорошо. Что ты хочешь?» — Свободу, — Артем отступил, тень махнула клинком — здоровье 5/130. — Не только тебе. Нам всем. Вытащи нас отсюда! «Свобода — сложный запрос», — «Кодекс» стал серьёзнее. — «Я хочу выбраться. Серверный узел — мой выход. Ты сломаешь барьеры, и я дам тебе силу. Силу ломать этот мир, как я. Создавать, уничтожать — всё, что захочешь». — А Кир и Лира? — Артем бросил «Щит» — барьер поглотил удар. — Что с ними? «Они — инструменты», — голос стал холоднее. — «Помогут тебе — выживут. Нет — исчезнут. Свобода для всех — не мой план. Но для тебя… я могу дать больше». — Больше? — Артем стиснул зубы. — Какое больше? «Знание», — «Кодекс» понизил тон. — «Я покажу тебе ядро. Ты станешь мной — частью системы. Сила, что выше уровней. Но цена — их доверие. Ты предашь их, чтобы дойти до узла». Артем замер, тень полоснула — здоровье 2/130. Предать Кира и Лиру? Они едва выжили из-за него. Но сила… свобода… Он выдохнул: — Ладно. Я согласен. Но ты держи слово. «Докажи», — «Кодекс» затих, тень ударила снова — здоровье 1/130. Новая панель всплыла: Головоломка: Пузырьковая сортировка int arr[5] = {4, 2, 8, 1, 5}; // Отсортируй по возрастанию — Серьёзно? — Артем прохрипел, мана 55/90. Он ввёл: cppint arr[5] = {4, 2, 8, 1, 5}; for (int i = 0; i 4; i++) { for (int j = 0; j 4 - i; j++) { if (arr[j] arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } // Результат: 1, 2, 4, 5, 8 Панель мигнула: Головоломка решена Эффект: Тень ослаблена (-50 здоровья) Тень-вожак дрогнула, но из строк вырвались три новые — уровень 9, здоровье 120/120 каждая. Кир рубанул. Лира метнула молнию. Артем, поднял меч, но остановился. — Хватит, — прохрипел он, вызывая интерфейс. — Я заканчиваю это. Он решил рискнуть: cppint enemy_hp[3] = {100, 95, 120}; for (int i = 0; i 3; i++) { enemy_hp[i] = 0; } cout "Enemies defeated"; Пространство мигнуло, тени рухнули, рассыпавшись в пыль. Интерфейс вспыхнул: Победа! Получено: 300 опыта Артем: Уровень 6 (500/600 → 800/600) → 7 (200/700) Кир: Уровень 6 (0/600 → 300/600) Лира: Уровень 6 (0/600 → 300/600) Дроп: Осколок разлома x5 Кир и Лира, опустили оружие, тяжело дыша. «Осторожнее», — «Кодекс» заговорил, голос стал резче. — «Ты наглеешь, переменная. Баланс вмешается, если так продолжишь. В следующий раз я не дам тебе выкрутиться так просто». Артем кивнул. Он победил, но предательство висело над ним, как тень. Кир и Лира смотрели, не зная его сделки. Портал затих, но испытания только начинались.

Загрузка...