— Эй, канальеро, ты там живой? Чего застыл, эсе? — окликнул меня Портос, он же Роберто.
— Ногу судорога свела, — начал демонстративно растирать конечность, — я всё на сегодня, — ответил я и, подозвав свистом Дюке, похромал в сторону дома, притворно припадая на ногу.
— Эй, вато, погоди, помогу! — вызвался Атос. Говорю же, нормальные пацаны, хоть и очевидная гопота. Жаль, что общаться с ними совершенно не о чем.
Гектор и Елена куда-то срулили на машине парня. Возможно, решили, что им больше нравится любовь на велюровом диване в лоурайдере, чем облезлая обстановка трейлера. Или не захотели, чтобы Крис вернулся домой прямо в процессе их игрищ, создав неловкую ситуацию.
Да пофиг! У меня в голове уже раскручивался код Тетриса. Пока на привычном и любимом мной Питоне, ныне еще не существующем. Позже перенесу на Си, Паскаль или Бейсик, самые ходовые языки начала восьмидесятых, если верно помню. Пока еще голые, процедурные, без ООП и классов. Не очень помню их древние диалекты, если честно. Но всё возможно наверстать.
Взял лист бумаги, разлиновал его при помощи линейки для наглядности и начал творить. Итак, главная аркадная головоломка столетия невероятно проста — стакан двадцать кубиков на десять. По сути — двумерный массив, то есть таблица, как в экселе, заполненный по умолчанию нулями. Это и есть игровое поле.
Семь всемирно известных фигур, состоящих из четырех квадратиков, каждая из фигур — отдельный массив четыре на четыре. Для простоты их называют буквами латинского алфавита, на которые те похожи по форме: I, J, L, O, S, T, Z. Для каждой фиксируем четыре переключаемых состояния, чтобы обыгрывать повороты. Выглядеть в игре будет так, будто у квадрата — О — один режим, а палки — I — всего два но для упрощения кода их будет четыре.
Бесконечный цикл, двигающий активную фигуру вниз на одну клетку. Если фигура уперлась нижней гранью в дно или другую фигуру — то переносим ее единички в главный игровой массив. Скорость регулируется паузами между шагами цикла.
В конце каждой итерации проверка всего поля, не заполнились ли какие-то линии в таблице целиком. Если да, стираем их, сдвигаем все остальные вниз и начисляем игроку призовые очки.
В простейшей вариации — всё! Усложнять и обмазывать красивостями можно бесконечно. В моем счастливом детстве среди детворы ходили легенды, что если пройти до конца на максимальной скорости, игра покажет мультик, но его нет. Рекорды ставить разрешается, даже чемпионаты проводить, но пройти до конца невозможно. Если только обсуждается не модифицированная и доработанная версия — их за десятилетия создали великое множество, в том числе при участии автора оригинала.
Алгоритм простейший, пойдет даже на калькуляторе. И это не шутка. Имелся у меня в девяностых модный китайский калькулятор с тетрисом на обратной стороне. А я еще ремонт стиралок мысленно золотой жилой называл! Игры — вот наше всё.
Остались простые, чисто формальные шаги: заполучить доступ к действующему компьютеру, написать код, найти, кому продать прототип, впечатлив новизной геймплея, и пригласить Мисс Июль на вечеринку у бассейна в Беверли Хиллз. Ах да, еще ничего себе не сломать, прыгая в бассейн, так как он будет набит деньгами. Четвертаками, скорее всего, так как права на игру стоит продавать именно производителям аркадных автоматов, а не ПК — те слишком нишевые и дорогие пока что.
Под томным взглядом блондинки в алом купальнике с обложки Плейбоя я и заснул, мечтая о богатстве, благополучии или хотя бы собственном компьютере, открывающем дверь к первым двум мечтам. Жди меня, дорогая, пацан к успеху идёт.
Если предыдущее утро начиналось не с кофе, то сегодняшнее очень даже наоборот. Дрянной растворимый порошковый Максвелл Хаус, горький, как моя жизнь, показался истинным нектаром богов, когда я, вскипятив на плитке кружку воды, заварил его. И даже капнул немножко карнажного молока, забелить. Вот бы настоящего, но оно быстро скиснет даже в холодильнике, а девать сразу почти четыре литра мне некуда.