В Minecraft собрали полноценный Tetris на редстоуне
За экраном скрывается сложная схема блоков, которую можно изучить самому.
Кстати, на сайте читать удобнее
Мэтт Палаццоло — большой любитель экспериментов с вычислительными возможностями Minecraft. В прошлом он строил здесь компьютеры и инженерные калькуляторы, новый проект Мэтта это полноценная версия Tetris на редстоуне.
В игре Мэтта реализовано поле размером 20 на 10 блоков, есть основные фигуры с возможностью вращения, присутствует система очков. За годы существования Minecraft тут пытались делать редстоун-версии Tetris, но они либо имели ограниченный функционал, либо работали очень медленно.
Впрочем, у проекта Палаццо тоже есть как минимум пара ограничений. Во-первых, поворачивать блок можно только в тот момент, когда он находится в верхней части стакана; затем появляется возможность двигать фигуру, но крутить ее нельзя.
Во-вторых, очистка ряда занимает очень много времени. Если фигуры движутся и поворачиваются достаточно плавно, то ряды исчезают медленно и по частям.
Большая часть ролика Мэтта посвящена принципам работы редстоун-версии Tetris. Вот о чем рассказывает Палаццоло.
- Есть три «внутренних» буфера: в одном хранятся неподвижные блоки, в другом — подвижные, третий используется для вывода результирующей картинки на основной «экран».
- Тип появляющейся фигуры определяет генератор случайных чисел, работающий на базе трех систем из загрузочной воронки, выбрасывателя, меча и красной пыли с компаратором. На выходе генератор выдает трехбитное число, определяющее, какая фигура будет следующей.
- Данные об активной фигуре хранятся в блоке памяти (огромная область фиолетовых блоков) с помощью мини-экрана, созданного из ламп. Когда фигура поворачивается, одни лампы просто отключаются, а другие — включаются.
- Движение фигуры управляет система из компараторов. Например, чтобы опустить фигуру на уровень вниз, нужно отключить все компараторы, препятствующие прохождению сигнала на уровень ниже.
- В каждый уровень схемы встроена система обнаружения столкновений, работающая на повторителях и умеющая работать в трех направлениях — вниз, влево и вправо. Система срабатывает, как только фигура касается фрагмента блока, хранящегося в буфере для неподвижных объектов.
- Самая сложная часть это очистка линии и сдвиг оставшихся блоков вниз. Сперва система четыре раза проверяла состояние линии, но затем Мэтт придумал, как ускорить процесс. Он стал хранить количество заполненных линий и пропускать весь обсчет, если оно нулевое.
А систему вывода очков, признается Мэтт, он не стал делать самостоятельно. Палаццоло воспользовался готовым блоком, созданным Maizuma Games — он отлично спроектирован и делает именно то, что нужно.
Свою версию Tetris Мэтт опубликовал на Planet Minecraft.
- Следующий патч для Minecraft выйдет 6 июля: что изменится
- Minecraft Earth закрылась
- Создатель Mass Effect Кейси Хадсон открыл собственную студию
- GitHub выпустил ИИ для программистов, генерирующий код по комментариям
- Утерянную версию Minecraft нашли после десятилетия поисков
- Для Minecraft вышел пак, превращающий мир в LEGO