Кодиум · книга первая · Земля Рудников

Глава 1. Первое слово

Это настоящая первая глава книги-курса — с живой консолью: код пишется и запускается прямо на странице. Тема: вывод в консоль — Console.WriteLine, Console.Write, знаки \n и \t.

Сначала была темнота.

Не та уютная темнота, что бывает ночью, — та хотя бы дышит звёздами. Эта была пустой и ровной, будто мир просто забыл, что он мир. Ни верха, ни низа. Ни звука.

А потом сквозь тишину пробился голос — дребезжащий, словно из треснувшего динамика:

— Эй. Эй, ты живой? Ну же, Архитектор, открой глаза. Я слишком долго тебя ждал.

И ты открываешь глаза.

Над тобой нависает дракон — небольшой, размером с крупную собаку, с чешуёй цвета погасшего экрана: тускло-серой, кое-где вздрагивающей, как мёртвые пиксели на сломанном мониторе. Один его глаз горит ровным синим светом. Второй потух совсем.

— Меня зовут Байт, — говорит дракон и устало садится. — Я хранитель этого мира. Точнее, был им. Пока всё не рассыпалось.

У его лапы дрожит крошечный тёплый огонёк — не больше светлячка. Он срывается с места, подлетает к самому твоему носу и звенит — как капля, падающая в полной тишине:

— А я Искра! А ты правда Архитектор? Байт, он же настоящий, я говорила!

— Тише, Искра. — Дракон смотрит на тебя единственным горящим глазом. — Этот мир зовётся Кодиум. Когда-то он был соткан из живых слов, что держали вместе горы, реки и всё, что дышит. Но в него пробралась пустота — мы зовём её Нуль. Она разъедает связи, и там, где проходит, не остаётся ничего. Случился Раскол: мир разлетелся на осколки, а я растерял почти всю силу.

Искра гаснет на миг, будто от холода, и снова вспыхивает.

— Но мир можно переписать, — продолжает Байт. — Слово за словом, заново. Тем древним Языком, которым Архитекторы творят. Ты его забыл — но руки вспомнят. Начнём с самого малого: заставим этот мир снова произнести хоть слово. Идём.

Байт ковыляет в темноту, и ты идёшь следом, пока перед вами из ничего не проступает прямоугольник — чёрный, глухой, с одинокой мигающей чёрточкой в углу.

— Это Консоль, — говорит дракон. — Голос мира. Сейчас он молчит. Твоё первое заклинание — заставить его сказать слово. Открой свой свиток — проект CodiumMines — и запиши вот это, точь-в-точь.

Он чертит когтем в воздухе — и прямо здесь, на странице, вспыхивает настоящий свиток. Он живой: жми руну запуска.

CodiumMines / Program.cs

курсор в коде + F5 или Ctrl-Enter

Ты смотришь на всё это нагромождение скобок с опаской. Байт замечает твой взгляд.

— Не пугайся. Смотри сверху вниз:

using System; — это как сказать: «я беру с собой готовый набор заклинаний по имени System». Внутри него живёт Console — тот самый голос мира.

namespace CodiumMines — имя твоего мира-осколка. Всё, что ты творишь, лежит внутри него, между фигурными скобками { }. Скобки — это границы: всё, что внутри, принадлежит своему хозяину.

class Program — свиток, в котором хранится сама программа. Пока считай его просто шкатулкой для заклинаний.

static void Main(string[] args) — главные Ворота. Когда ты ударишь по руне Запуска, мир войдёт именно сюда и выполнит всё, что стоит внутри, строчка за строчкой, сверху вниз. Из каких слов сложены сами Ворота — разберём позже. Это просто рама, и она всегда одна и та же. Твоё дело — то, что внутри.

Коготь дракона останавливается на средней строке — той, что в самой сердцевине:

— А вот и оно. Твоё настоящее первое слово. Console — голос мира. Точка — «протяни руку к». WriteLine — само заклинание: «произнеси вслух и переведи дыхание», то есть скажи и перейди на новую строку. В круглых скобках — то, что именно сказать, и оно всегда одето в кавычки "...", как в плащ. А в самом конце — ;. Это печать. Без печати заклинание не считается произнесённым.

— Точка с запятой в конце КАЖДОГО заклинания! — важно добавляет Искра. — Запомни-запомни!

Где-то далеко, за краем темноты, после твоего запуска что-то тихо загудело — будто первая струна натянулась в немом инструменте. Потухший глаз Байта на миг вспыхивает синим и снова гаснет. Но ты успел заметить.

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

С этой минуты, чтобы не переписывать каждый раз всю раму, Байт показывает тебе только сердцевину — строки внутри Ворот. Рама остаётся прежней, ты уже её знаешь. Свитки ниже понимают это.

— Теперь фокус, — говорит дракон. — У голоса мира есть два дыхания. WriteLine ты уже знаешь — сказать и перевести дух, с новой строки. А есть Write — сказать на одном дыхании, без перехода. Слова тогда встают вплотную, плечом к плечу. Смотри.

два дыхания.cs

— Видишь? — звенит Искра. — Write не переводит дыхание, вот слова и слиплись в одну строку! А два WriteLine встали бы на разные строчки.

Но пока ты любовался, из щели между строками высунулось что-то мелкое и вертлявое — существо размером с крысу, слепленное из битых пикселей. Оно ухмыльнулось и подменило в первой строке одну-единственную буковку: сделало большую C в слове Console маленькой.

— Мисматч! — рычит Байт. — Мелкий вредитель! Запусти — и увидишь, что он наделал. Потом почини букву сам.

испорчено Мисматчем.cs

— Не пугайся красного, — говорит дракон. — Это не ругань, а карта: она показывает строку с бедой. Мир очень придирчив к большим и маленьким буквам: для него Console и console — два разных слова. Одно он знает, другое — нет.

— И последнее на сегодня, — говорит дракон. — Иногда нужно сказать несколько строк одним заклинанием. Для этого внутри кавычек живёт тайный знак — \n. Глазу он невидим, но означает «здесь переведи строку».

тайный знак.cs

— Одно заклинание — а строки две! — восхищается Искра.

— А есть у него брат — \t, — добавляет Байт. — Он делает большой ровный отступ, будто прыжок по линейке. Пригодится, когда захочешь построить слова ровными столбцами.

ровный строй.cs

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

снова Мисматч.cs

— Знакомая подлость, — спокойно говорит Байт. — Без кавычек мир не понимает, что «Привет» — это просто слово, которое надо произнести вслух. Верни кавычки — и всё встанет на места.

— Три его пакости ты теперь знаешь, — считает Байт. — Крадёт ;, играет регистром букв и срывает кавычки. Заметишь красный текст — первым делом ищи его следы.

Испытания Рудника

Это твои задачи. Здесь только игровые условия — а КАК их выполнить, решаешь ты сам, всем, чему научился в главе. Понадобится лишь голос мира: WriteLine, Write, знаки \n и \t. Запускай руной F5, читай красный текст, чини. Свиток Ответов — в конце; загляни туда, только если честно застрял. Каждое пройденное испытание возвращает Байту каплю силы.

Испытание 1. Выход на арену

Ты впервые выходишь на арену Рудника, и мир должен объявить тебя притихшей толпе — торжественно, в три отдельные строки: имя твоего героя, его звание и боевой клич. Пусть каждое слово прозвучит своей строкой.

испытание_1.cs

Испытание 2. Вывеска ростовщика

Над окошком ростовщика в одну-единственную строку, без разрывов, должно стоять: Найдено золота: 500. Но по правилам Рудника надпись собирают из двух отдельных возгласов — сперва одна часть, потом, вплотную к ней, вторая. Собери так, чтобы строка не разорвалась посередине.

испытание_2.cs

Испытание 3. Боевой гимн

Древний свиток требует, чтобы боевой гимн Рудника прозвучал в две строки — но одним, единым возгласом мира, а не двумя. Найди способ уместить обе строки в одно заклинание.

испытание_3.cs

Испытание 4. Ровный строй

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

испытание_4.cs

Испытание 5 (со звёздочкой). Знамя Кодиума

Над входом в Рудник нужно поднять знамя: слово КОДИУМ в аккуратной рамке из символов — например, из чёрточек и звёздочек. Пусть в Консоли оно и вправду выглядит как настоящая вывеска над воротами.

испытание_5.cs

⚡ Все пять капель силы вернулись! Потухший глаз Байта загорается ровным синим светом. «А ты и правда Архитектор», — говорит он почти весело. Глава пройдена полностью.
📜 Свиток Ответов — открой, только если честно застрял

Испытание 1: три отдельных Console.WriteLine("..."); — имя, звание, клич.

Испытание 2: первую часть говорим через Console.Write("Найдено золота: "); — без перехода, чтобы вторая (Console.WriteLine("500");) прилипла на той же строке.

Испытание 3: две строки в одном возгласе даёт тайный знак: Console.WriteLine("Вперёд, Рудник!\nНи шагу назад!");

Испытание 4: ровный столбец справа выстраивает \t: Console.WriteLine("Меч\tОстрый"); — и ещё две такие же пары.

Испытание 5: три строки — звёздочки, * КОДИУМ *, звёздочки. Хвалим за любую аккуратную рамку; отдельно — если уместил знамя в один возглас через \n.

Продолжение — в Главе 2, где Рудник наконец отдаёт первое золото, и ты научишься не просто говорить слова, а хранить их — в рунических сосудах. А Мисматч… Байт был прав. Он вернётся.

Дальше — вся кампания

«Кодиум» — это полный фундамент C# как книга-приключение: главы-уровни, испытания, Мисматч и живой код. Без ментора, проверок и группы: только ты и дракон.

6 900 ₽4 000 ₽

цена запуска · передумаешь идти соло — 2 месяца на переход к ментору, вся цена зачтётся

Иду соло — купить книгу

…или начни с бесплатного пробного занятия с ментором