Книга: Ретро Бит [2]
Назад: Глава 8
Дальше: Глава 10

Глава 9

В каком-то далеком будущем году неизвестный мне, вроде бы латиноамериканский, но могу и ошибаться, программист создал предельно простую головоломку, что лично меня покорила. Она называется 2048 и построена на удвоении чисел.
Суть до безобразия проста: поле четыре на четыре клетки. В начале появляются две плитки с номиналом «2». Игрок выбирает направление — вверх, вниз, влево или вправо — и все плитки одновременно скользят до упора. Если сталкиваются две одинаковые — они складываются. Двойка с двойкой дают четверку, две четверки — восьмерку и так далее по степеням двойки, нежно любимым в айти-сообществе, пока не соберешь заветные 2048. Для наглядности ячейки оформляются разными цветами в зависимости от номинала.
Можно и дальше, я встречал модифицированные версии, где порог выигрыша повышался до 4096 или 8192. В конце каждого хода на пустом месте спавнится новая двойка или, если бог рандома пожелает, то четверка. Поле забилось и доступных ходов нет — потрачено, гейм овер. Настоящая дофаминовая петля, не хуже, чем с тетрисом, во всяком случае, для меня.
Базовую логику я однажды уже релизил — на джаваскрипте и реакте, дабы работало в браузере. Повторить ее в текстовом режиме убогого яблочного бейсика — задача уровня школьника. Как же удачно, что я и есть школьник! Расчертил квадрат при помощи тире и черточек. В центр каждой клетки число. Какое же убожество получилось!
А в графическом режиме lo-res не хватило разрешения. При ширине поля в 40 точек на каждое число отводится 10 пикселей и уже с трёхзначными числами начинаются проблемы, не говоря о 1024 и 2048. Естественно, спрайты чисел надо рисовать попиксельно. От одной мысли о перспективе связываться с цветомузыкой высокого разрешения начинало тошнить. Но куда деваться?
Придерживаемся имеющегося набора цветов — царство фиолетового, зеленого, оранжевого и синего с примесью белого и черного. Двигаем их исключительно на четное число пикселей. Анимация нам не нужна — схлопываем фигуры мгновенно. Так как картинка статическая, за производительностью не гонимся, а потому не лезем в ассемблер и не набиваем шишки об упоротую фрагментированную адресацию видеопамяти.
Ночь, она зовёт меня…
Закончил в четыре утра, записал на аудиокассету и вырубился, даже копирайт не успел добавить. И всё-таки я жаворонок. Или дело в молодом организме. Но после пары часов сна поднялся на ноги почти нормально. Ну, штормило слегка, однако кофе выручил и придал сил. Велосипед, школа… не заснуть на уроке пропаганды… не заснуть на английском…
— Мистер Колон, вы что, храпели? — спросила миссис Уайт.
— Простите. Я писал всю ночь и не выспался, — признался честно.
— Стихи⁈ — глаза старушки, скрытые за большими очками, алчно блеснули.
— Да, мэм, — куда уж деваться, лучше отмазка, чем обидеть добрую бабушку. — Если вам интересно, я запишу вам копию по памяти.
И записал. «Ночь… она зовёт меня». Дифирамбов после уроков дожидаться не стал — сбежал к Миллеру. Нелегко живется нам, гениям готической поэзии, не позволяют выспаться ни на физике, ни на математике. Ну хоть к доске не вызвали.
Кажется, я начал понимать «Сонного Джо», встречающегося нам по субботам. Только сел за парту в зале самоподготовки и протянул Линде половинку обеда, как обнаружил, что девушка трясет меня за плечо, призывая проснуться по окончанию перерыва. Хорошо хоть, что сегодняшний дежурный учитель — негр с сэндвичем, ему плевать, сплю я или нет, главное, что не шумлю.
— Крис, почему ты такой сонный второй день подряд? Я за тебя волнуюсь, — сказала подруга на выходе из 104-го.
— Писал всю ночь игру! — блистательно улыбнулся и удержался от зевка.
— А какую? Покажешь⁈
— Логическая головоломка. Покажу.
И кто сказал, что приманивать девушек на компьютерные игры — провальная стратегия? У вас девчонки неправильные, если она не срабатывает. Конкретно с данной няшной азиаткой, судя по жадному интересу в прекрасных глазах — очень даже действенная.
— У меня все вечера на неделе забиты доставкой, — грустно протянула Линда, — давай в субботу после того, как ты всех обыграешь в шахматы.
То, что вероятность моего поражения даже не рассматривается — приятно, но Миллер сегодня же после уроков наглядно доказал, что не все у меня так и хорошо с древней игрой. Да, виноват недосып, но 4:1 не в мою пользу — настоящий разгром.
И как только я доехал до прачечной, не закемарив прямо на велике? В заведении Ковальски меня ждал сюрприз — Фроггер. Жадный бобр не смог дотерпеть до официального открытия аркадного зала и втиснул лягушачий автомат в прачечной.
— Ненавижу эту игру! — поведала Мария, пытавшаяся перевести лягушку. — Она слишком сложная! Почему нельзя делать игры простыми, чтобы и нормальные люди имели шансы их проходить?
Мигель от кассы сказал ей что-то на испанском и ребята синхронно рассмеялись. Никакой ревности с моей стороны! Даже наоборот, пусть сходятся и живут долго и счастливо!
А ответ на озвученный девушкой вопрос в том, что контента в игру пока что вмещается самый мизер, так как память дорогая. И чтобы удерживать игроков, приходится задирать кривую сложности. Лишь СуперМарио, что выйдет через несколько лет, сломает тенденцию умещать весь контент в одном экране.
— Кристобаль, ты выглядишь так, будто не спал неделю, — заметила меня Машенька.
— Всего пару ночей. Простирните мне спортивную форму, пожалуйста. Я в бар.
Залез внутрь Галаги, измерил выходное напряжение на БП — 4 вольта. Мистер Феликс, вы настоящий «тыж», а я так, ваш жалкий подражатель. Привет, сто долларов! Нашел винтик, отвечающий за регулировку, подкрутил, померил, еще подкрутил, пока не получил на мультиметре ровно 5. Включаю, громкий, но мелодичный писк — звуки восьмибитной музыки при включении игры.
— Адмирал Ковальски, сэр, докладывает энсин Колон из инженерного. Шесть из семи новых кораблей вашего флота в строю, — выдал вслух рапорт, не вылезая из автомата.
— Починил-таки, сынок, — я чуть головой о плату не стукнулся от неожиданности. Поляк, оказывается, ниндзя или умеет становиться невидимым, как Дракс Разрушитель.
— Да, сэр. Для ремонта седьмого нужна новая плата за пятьсот долларов. Ее я заказать не могу, так как нет денег на предоплату.
— Подождем с этим, я и так много денег в ремонт вложил. Еще не факт, что автомат отобьет затраты. Но ты молодец, Колон. Рад, что не ошибался в тебе.
— Сэр, мне нужна ваша помощь. Купите мне бутылку бурбона.
— Сынок, я знаю, что тебе нелегко, пришлось. Брат арестован, перспектива оказаться в приемной семье. Но пьянство — это…
Хороший ты мужик, бобр Ковальски. Но не угадал.
— Мне не для того, чтобы пить, это в оплату за услуги одного полезного пьяницы. Я могу вам хоть на библии поклясться, что не сделаю ни глотка из той бутылки.
Поляки — католики, как и латиноамериканцы, клятва на святом питании для них что-то да значит. Хотя, если честно, и не планировал обманывать. Я не трезвенник и в конвульсиях от капли C2H5OH не бьюсь, скорее, равнодушен к алкоголю и не нахожу в нем удовольствия.
— Хорошо, пацан. Я тебе поверю, но если узнаю, что обманул, а Джон Ковальски всегда узнаёт, разочаруюсь в тебе… и стану платить меньше.
— Не уволите, сэр?
— И где ещё я найду дешевого механика аркадных автоматов? Наведи тут порядок. Расставь игры… как их положено ставить, протяни к каждому ящику провода, вынеси мусор и получишь свой бурбон. Но не сегодня, спешить некуда, лицензия на зал оформляется долго. А сегодня свободен, тебе нужно выспаться.
— Спасибо, сэр, — я чуть не выразил ему благодарность от лица командования Звездного Флота, но даже слегка затуманенным сознанием сообразил, что бобр не в теме Звездного Пути и как бы не заподозрил меня в том, что уже под мухой или чего похуже. Смолчал.
Сотня баксов! Космические деньги для подростка. Жалкие гроши для мужчины, какому надо обеспечивать семью. Заехал в супермаркет и нагрузился в очередной раз борщевым набором овощей, потратив десятку. Хочу, блин, машину! Набитый продуктами рюкзак уже стал слишком тяжелым. Но к пятничному визиту из службы опеки стоит подготовиться, не Елене же ответственную миссию доверять.
Выгрузив покупки в холодильник, понял, что сил не осталось. А потому взял Дюке, чтобы побегал, и пошел гонять с пацанами в футбол. Играл плохо, постоянно тупил, но не заснул и то уже хорошо.
Заработанные деньги спрятал в системнике — устроил тайник за платой бывшего телевизора, какую поленился демонтировать.
Ночь, она… нет. Едва дотерпев до ужина, забрался на верхнюю полку и вырубился до звонка будильника. Во сне Мисс Июль громила меня в шахматы с лёгкостью гроссмейстера, обещая снять купальник, если выиграю. Без шансов!
Сон не сон, но идея шикарная. В девяностых мы играли с компьютером в порношашки. Обыгрываешь алгоритм — и девушка снимает с себя вещь, вплоть до полного разоблачения. Шашки закодить несложно, но проблема, внезапно для современного человека, в картинках с раздетыми девушками. Не в каких-то моральных нормах, забери их Слаанеш. У убогих компов начала восьмидесятых попросту нет столько памяти, чтобы держать порнографию высокого разрешения.
Всю дорогу до школы я думал о том, как порадовать молодое поколение шашистов нарисованными чичис. Ну и стрип-покер заодно на том же движке стоит запилить. Алгоритмы сжатия мне в помощь? Я, признаться, не настолько хорош, чтобы помнить наизусть детали реализации того же джипега. Но пусть им умные люди в очках и лысинах занимаются. Всё равно процессор в один мегагерц ни сжатие, ни распаковку в приличном качестве не осилит. Что потяну, пожалуй, так перевод картинок в векторный формат. Изначально рисовать арты на черном фоне линиями, легко кодирующимися через «нарисуй линию от сих до сих». И, пожалуй, алгоритм, упаковывающий в вектор любую картинку.
Есть смутное чувство, что изобретаю даже не велосипед, а колесо, что всё уже придумано до нас. Но и пофиг. Меня от самого процесса создания алгоритма штырит так, что никакой алкоголь не нужен. Отрешаюсь от всего.
И как удачно, что совсем недавно я видел в журнале статью о создании самодельного графического сканера. Найти бы еще талантливого художника, способного создать из одних простых по форме линий соблазнительную прелестницу. Оригинальный Крис рисовал в тетрадке отличные груди, но я его талантами не наделен. Может быть, кто-то из парикмахерш втайне рисует? Линда? Мария? Да что я гадаю? В политехнической школе наверняка существует класс искусств, где обучают рисованию.
— Мистер Колон, задержитесь на минуту, пожалуйста, — попросила миссис Уайт после английского и аккуратно поправила свои большие очки.
— Да, мэм?
— Кристобаль… я прочитала то, что вы мне вчера оставили. Просто поразительно! Рада, что не ошиблась в оценке таланта. «Ночь… она зовёт меня». В ваших строках столько первобытной тоски и глубокого понимания человеческого одиночества…
— Спасибо, миссис Уайт. Я на самом деле писал всю ночь и стихи сами пришли ко мне, — не говорить же чудесной бабушке, что писал я на бейсике.
— Я взяла на себя смелость прочитать ваши строки профессору Кроуфорду и Аластер разделил моё мнение. Юноша, в вас есть потенциал стать современным Эдгаром Алланом По. Скажите, а ваша дама сердца оценила их? Не вздумайте стесняться. Покажите ей! Пообещайте мне!
— Пока не успел, но покажу.
Ах, миссис Уайт, вы мой персональный купидон.
Пацан сказал — пацан сделал. Протянул Линде листочек и с удовольствием наблюдал, как расширяются ее красивые глаза. Быть может, не очень правильно использовать плагиат чужих стихов, чтобы понравиться девушке. Но с Вольтером я обязательно рассчитаюсь, а его песня на самом деле находит отклик в моей душе. Я и сам бы написал что-то похожее, если бы имел хоть каплю таланта.
«Это потрясающе, Крис. Звучит так, будто ты заглянул мне в голову. День и правда бывает слишком громким. Ночь… она зовёт и меня тоже».
Ох, как жаль, что сегодня дежурным физруком выступал Бак, что сверлил нас с подругой маленькими, полными ненависти глазками и даже очередную записку передать не позволил.
— Соблюдайте дисциплину, мистер Колон! Вы на гауптвахте, чтобы отбывать наказание! — потребовал злодей.
Зато как я оторвался в блице после автомеханики. Свежая голова и прилив мотивации от общения с Линдой принесли мне сухую победу. Миллер даже ворчать по поводу того, что недостаточно стараюсь, не стал.
— В субботу утром у ворот школы, мистер Колон. Автобус уходит в семь-тридцать. Не забудьте про дресс-код. Никаких джинсов и футболок. Если у вас нет нормальной одежды, купите. Брюки, туфли, рубашка под ремень или хотя бы свитер с вырезом. Мы отправимся в приличное общество. Как бы вас еще из-за лица не отстранили, но про синяки в правилах ничего нет.
— Могли бы и заранее предупредить, сэр, — не стал скрывать недовольства.
— Это и есть заранее. Доехать до комиссионки «Армии Спасения» и купить себе обувь вы сможете хоть сегодня. Я говорю о базовых правилах приличия, мистер Колон, вам в любом случае рано или поздно придется уйти от стиля уличного хулигана, если собираетесь претендовать на что-то в жизни. Считайте уроком.
— Спасибо, сэр!
И, совершенно внезапно, Миллер прав — мне надо в комиссионку. Только не Армии Спасения, про которую я периодически встречал упоминания на уровне идиом то в кино, то в книгах, но ни разу не видел. Моя цель — комиссионный магазин дядюшки Манни, о каком говорил Гектор. На две штуки баксов за краденый комп рассчитывать, конечно, не стоит, но хотя бы тысячу получить было бы отлично. А косарь — это больше трех месяцев аренды трейлера или так нужная мне машина, для которой еще правами стоит озаботиться.
— Сэр, не подскажете, как мне сдать на водительские права? — почему бы и не получить от Миллера хоть какой-то толк.
— Вы поражаете меня, мистер Колон, — Миллер насмешливо выгнул бровь, убирая шахматы в деревянную коробку. — Вы способны стратегически мыслить, просчитывая ход партии на доске, но не в состоянии одолеть простейшую бюрократическую процедуру? Или в вашем баррио принято просто заводить двигатель, соединяя провода, не утруждая себя документами?
— Потребность в правах возникла у меня лишь сейчас, сэр.
— Запоминайте алгоритм, мистер Колон.
Шаг первый: Получаете письменное разрешение опекуна.
Шаг второй: Садитесь в автобус, платите пятьдесят центов и едете в даунтаун, в Департамент транспортных средств, где проходите проверку зрения и сдаёте элементарный теоретический тест. Получаете ученические права. С ними вам разрешено практиковаться в присутствии совершеннолетнего водителя.
Шаг третий: Ждете ровно тридцать дней, улучшаете навыки вождения.
Шаг четвертый: Возвращаетесь в департамент, сдаёте инспектору практический экзамен и забираете полноценное удостоверение.
— Спасибо, сэр. Я воспользуюсь вашими советами.
Всё же не полная он сволочь, хоть и старается выглядеть таковым. Про автобус за пятьдесят центов и вовсе откровение! Я в своей наивности считал, что в штатах у каждого бомжа есть собственная машина и общественный транспорт отсутствует, как класс, кроме метро и междугородних «Грейхаундов». Во всяком случае, такое впечатление сложилось. А мог бы вспомнить шикарный боевик «Скорость» с Киану Ривзом и Сандрой Баллок, где действие происходит в городском автобусе в — сюрприз, Крис — Лос-Анджелесе.
Сегодня, впрочем, я продолжил оставаться велосипедистом — поехал в комиссионку дядюшки Манни, выяснить насчет первого Эппл 2 Плюс. Деньги за него манили почище ночи. Надеюсь, меня там не убьют и не ограбят. Вроде бы всё еще наш район, не должны привязаться.
Назад: Глава 8
Дальше: Глава 10