Редстоун в Minecraft дети обычно осваивают как набор трюков: тут дверь открывается, тут лампа загорается. Трюки работают, но не складываются — стоит изменить условие, и схему приходится выдумывать заново. Складываются они тогда, когда за ними видна логика: та самая, из которой потом собирается любая программа.
Логических схем всего несколько, и каждая отвечает на простой вопрос о сигналах. Ниже — справочник по ним: что каждая делает, из чего собирается и где её видно в обычной игре. Это тот материал, после которого ребёнок перестаёт копировать чужие конструкции из видео и начинает собирать свои.
Сначала про сам сигнал
Редстоуновая пыль передаёт силу сигнала от 15 до нуля, а не простой ответ «есть ток или нет». На каждом блоке пути сила падает на единицу, поэтому дорожка длиннее пятнадцати блоков гаснет сама собой. Повторитель возвращает сигналу полную силу и заодно пропускает его только в одну сторону.
| Деталь | Что делает |
|---|---|
| Редстоуновая пыль | ведёт сигнал, теряя единицу на блок |
| Редстоуновый факел | горит, пока блок под ним не под напряжением |
| Повторитель | усиливает до 15, пропускает в одну сторону, добавляет задержку |
| Компаратор | сравнивает два сигнала или вычитает один из другого |
| Рычаг, кнопка, плита | источники сигнала с разным поведением |
| Редстоуновый блок | постоянный источник на 15 |
Самая важная строка здесь — про факел. Он ведёт себя задом наперёд: светится, когда сигнала нет, и гаснет, когда сигнал приходит. Именно эта «неправильность» делает его главной деталью всей логики.
НЕ: переворачиватель
Поставьте факел на боковую грань блока и подайте на этот блок сигнал. Факел погаснет. Уберите сигнал — загорится снова. Это и есть схема НЕ: на выходе всегда противоположное тому, что на входе.
Сама по себе она нужна редко, зато без неё не собирается ничего остального. Полезный бытовой пример: дверь, которая стоит открытой и закрывается при нажатии кнопки, вместо привычного наоборот.
ИЛИ: просто соединить
Простейшая схема вообще не требует деталей. Сведите две дорожки пыли в одну — и сигнал пойдёт дальше, если работает хоть один источник. Свет в комнате, который включается двумя разными рычагами у двух дверей, — это уже схема ИЛИ, даже если строитель о ней не думал.
И: оба сразу
Здесь начинается интересное. Прямого способа сказать «пропусти, только если оба» в игре нет, и его собирают обходным путём: перевернуть каждый вход по отдельности, соединить перевёрнутые, а результат перевернуть ещё раз.
Звучит запутанно, но проверяется на пальцах. Если включены оба рычага, оба первых факела погасли, в общую дорожку не идёт ничего, последний факел горит — сигнал есть. Стоит выключить один рычаг, и его факел вспыхнет, подаст напряжение на общую линию, последний факел погаснет — сигнала нет. Ровно то, что нужно.
Этот приём — перевернуть, объединить, перевернуть — стоит показать отдельно. Это первый случай, когда ребёнок строит не копию увиденного, а конструкцию из правила, и работает то же правило в программировании.
Таблица схем
| Схема | Сигнал на выходе, когда | Из чего собирается |
|---|---|---|
| НЕ | на входе ничего нет | факел на блоке |
| ИЛИ | работает хоть один вход | две дорожки в одну |
| И | работают оба входа | два НЕ, ИЛИ, ещё одно НЕ |
| НЕ-ИЛИ | не работает ни один | ИЛИ плюс факел |
| НЕ-И | работают не оба | И плюс факел |
| XOR | работает ровно один | ИЛИ и НЕ-И, сведённые через И |
Последняя схема — исключающее ИЛИ — самая полезная в быту и чаще всего нужна детям, хотя они об этом не догадываются. Это дверь, которая открывается рычагом и изнутри, и снаружи: нажали любой один — открылась, нажали второй — закрылась. Логика здесь именно «ровно один», а не «хоть один».
Собирается она из уже знакомых частей: отдельно считаем «хоть один включён» и отдельно «включены не оба», а потом требуем, чтобы выполнилось и то, и другое. Когда ребёнок один раз пройдёт эту цепочку сам, остальные схемы перестают быть магией.
Поршень, лампа и дверь: куда это всё ведёт
Логика сама по себе ничего не делает — она только решает, пускать сигнал или нет. Дальше нужен исполнитель, и их немного: лампа светится, дверь открывается, поршень толкает блок, раздатчик бросает предмет, динамит взрывается. Любую схему можно проверить на лампе, а потом подставить на её место что угодно другое — вход у исполнителя одинаковый.
Порядок работы из этого и складывается: сначала собрать логику и убедиться на лампе, что она рассуждает правильно, и только потом цеплять поршни с дверями. Дети обычно делают наоборот — сразу строят красивый механизм, в нём что-то не работает, и непонятно, где именно: в логике или в том, как поставлен поршень. Разделить эти два слоя — половина успеха.
Задержка и память
Повторитель, кроме усиления, даёт задержку: его можно щёлкнуть до четырёх положений, каждое добавляет немного времени. Из этого собираются последовательности — когда одно действие должно произойти после другого, а не вместе с ним.
Два повторителя, направленные друг на друга, дают схему с памятью: она запоминает, какой сигнал пришёл последним, и держит его после того, как кнопку отпустили. Это ровно та идея, которую в программировании называют переменной — место, где хранится состояние. Ребёнку полезно увидеть её сначала в блоках: дальше слово «переменная» на уроке Python не вызывает пустоты в глазах.
Компаратор: когда важно не «есть», а «сколько»
Все схемы выше отвечают на вопрос «да или нет». Компаратор работает с величиной: он смотрит на силу сигнала и умеет сравнивать её с боковой или вычитать боковую из основной. Переключается между двумя режимами щелчком, и видно это по огоньку спереди.
Самое наглядное его применение — сундук. Поставьте компаратор вплотную к сундуку, и он выдаст сигнал тем сильнее, чем полнее сундук. Пустой даёт ноль, одна вещь — единицу, забитый доверху — пятнадцать. Отсюда собирается сортировщик, сигнализация «склад заполнен» и счётчик предметов в ферме.
Для ребёнка это важный переход: раньше сигнал был переключателем, а теперь стал числом, которое можно сравнивать. В программировании эта же разница живёт между проверкой «файл существует» и проверкой «в списке больше десяти элементов».
Как проверять схему, не угадывая
Когда схема не работает, большинство детей начинают переставлять блоки наугад. Быстрее другой путь, и он тоже полностью переносится в программирование: перебрать все возможные состояния входов по порядку.
У схемы с двумя рычагами таких состояний ровно четыре: оба выключены, первый, второй, оба. Пройдите их по очереди и запишите, что на выходе. Три правильных ответа из четырёх сразу показывают, в каком именно месте ломается логика, и дальше искать приходится не по всей конструкции, а в одном узле.
Привычка пробовать все варианты, а не тот один, который пришёл в голову, — едва ли не самое полезное, что редстоун даёт к программированию. Именно так потом проверяют код.
Три вещи, из-за которых схема не работает
Первая: сигнал погас по дороге. Дорожка длиннее пятнадцати блоков без повторителя просто не доносит напряжение, и выглядит это так, будто сломалась конечная деталь. Если схема перестала работать после того, как её удлинили, — дело почти всегда в этом.
Вторая: сигнал пошёл назад. Пыль проводит в обе стороны, и две соседние схемы начинают влиять друг на друга. Повторитель пропускает только вперёд, и одна такая деталь на выходе каждого узла снимает большинство подобных загадок.
Третья: факел перегорел. Если схема переключается слишком быстро сама на себя, факел начинает мигать и на некоторое время выключается совсем — игра защищается от бесконечного цикла. Появление такого мигания почти всегда означает, что выход схемы случайно заведён на её же вход.
Когда логика понятна, следующий шаг — собрать на ней что-то работающее: ферму, дверь с паролем, счётчик. Команды для этого есть в справочнике команд, названия нужных блоков — в справочнике ID, а как это связано с текстовым кодом, разобрано в материале про Python в Minecraft.