Редстоун у Minecraft діти зазвичай освоюють як набір трюків: тут двері відчиняються, тут лампа загоряється. Трюки працюють, але не складаються — варто змінити умову, і схему доводиться вигадувати заново. Складаються вони тоді, коли за ними видно логіку: ту саму, з якої потім збирається будь-яка програма.

Логічних схем усього кілька, і кожна відповідає на просте питання про сигнали. Нижче — довідник із них: що кожна робить, з чого збирається і де її видно у звичайній грі. Це той матеріал, після якого дитина перестає копіювати чужі конструкції з відео і починає складати свої.

Спочатку про сам сигнал

Редстоуновий пил передає силу сигналу від 15 до нуля, а не просту відповідь «є струм чи немає». На кожному блоці шляху сила падає на одиницю, тому доріжка довша за п'ятнадцять блоків гасне сама собою. Повторювач повертає сигналу повну силу і заодно пропускає його тільки в один бік.

ДетальЩо робить
Редстоуновий пилведе сигнал, втрачаючи одиницю на блок
Редстоуновий факелгорить, поки блок під ним не під напругою
Повторювачпідсилює до 15, пропускає в один бік, додає затримку
Компараторпорівнює два сигнали або віднімає один з іншого
Важіль, кнопка, пластинаджерела сигналу з різною поведінкою
Редстоуновий блокпостійне джерело на 15

Найважливіший рядок тут — про факел. Він поводиться задом наперед: світиться, коли сигналу немає, і гасне, коли сигнал приходить. Саме ця «неправильність» робить його головною деталлю всієї логіки.

НЕ: перевертач

Поставте факел на бічну грань блока і подайте на цей блок сигнал. Факел згасне. Приберіть сигнал — загориться знову. Це і є схема НЕ: на виході завжди протилежне тому, що на вході.

Сама по собі вона потрібна рідко, зате без неї не збирається нічого іншого. Корисний побутовий приклад: двері, які стоять відчиненими і зачиняються при натисканні кнопки, замість звичного навпаки.

АБО: просто з'єднати

Найпростіша схема взагалі не потребує деталей. Зведіть дві доріжки пилу в одну — і сигнал піде далі, якщо працює хоч одне джерело. Світло в кімнаті, яке вмикається двома різними важелями біля двох дверей, — це вже схема АБО, навіть якщо будівник про неї не думав.

І: обидва разом

Тут починається цікаве. Прямого способу сказати «пропусти, тільки якщо обидва» в грі немає, і його збирають обхідним шляхом: перевернути кожен вхід окремо, з'єднати перевернуті, а результат перевернути ще раз.

Звучить заплутано, але перевіряється на пальцях. Якщо увімкнені обидва важелі, обидва перші факели згасли, у спільну доріжку не йде нічого, останній факел горить — сигнал є. Варто вимкнути один важіль, і його факел спалахне, подасть напругу на спільну лінію, останній факел згасне — сигналу немає. Рівно те, що потрібно.

Цей прийом — перевернути, об'єднати, перевернути — варто показати окремо. Це перший випадок, коли дитина будує не копію побаченого, а конструкцію з правила, і працює те саме правило в програмуванні.

Таблиця схем

СхемаСигнал на виході, колиЗ чого збирається
НЕна вході нічого немаєфакел на блоці
АБОпрацює хоч один вхіддві доріжки в одну
Іпрацюють обидва входидва НЕ, АБО, ще одне НЕ
НЕ-АБОне працює жоденАБО плюс факел
НЕ-Іпрацюють не обидваІ плюс факел
XORпрацює рівно одинАБО і НЕ-І, зведені через І

Остання схема — виключне АБО — найкорисніша в побуті й найчастіше потрібна дітям, хоча вони про це не здогадуються. Це двері, які відчиняються важелем і зсередини, і зовні: натиснули будь-який один — відчинилися, натиснули другий — зачинилися. Логіка тут саме «рівно один», а не «хоч один».

Збирається вона з уже знайомих частин: окремо рахуємо «хоч один увімкнений» і окремо «увімкнені не обидва», а потім вимагаємо, щоб виконалося і те, і те. Коли дитина один раз пройде цей ланцюжок сама, решта схем перестають бути магією.

Поршень, лампа і двері: куди це все веде

Логіка сама по собі нічого не робить — вона тільки вирішує, пускати сигнал чи ні. Далі потрібен виконавець, і їх небагато: лампа світиться, двері відчиняються, поршень штовхає блок, роздавач кидає предмет, динаміт вибухає. Будь-яку схему можна перевірити на лампі, а потім підставити на її місце що завгодно інше — вхід у виконавця однаковий.

Порядок роботи з цього і складається: спершу зібрати логіку й переконатися на лампі, що вона міркує правильно, і тільки потім чіпляти поршні з дверима. Діти зазвичай роблять навпаки — одразу будують красивий механізм, у ньому щось не працює, і незрозуміло, де саме: у логіці чи в тому, як поставлений поршень. Розділити ці два шари — половина успіху.

Затримка і пам'ять

Повторювач, окрім підсилення, дає затримку: його можна клацнути до чотирьох положень, кожне додає трохи часу. З цього збираються послідовності — коли одна дія має відбутися після іншої, а не разом з нею.

Два повторювачі, спрямовані один на одного, дають схему з пам'яттю: вона запам'ятовує, який сигнал прийшов останнім, і тримає його після того, як кнопку відпустили. Це рівно та ідея, яку в програмуванні називають змінною — місце, де зберігається стан. Для дитини корисно побачити її спочатку в блоках: далі слово «змінна» на уроці Python не викликає порожнечі в очах.

Компаратор: коли важливо не «є», а «скільки»

Усі схеми вище відповідають на питання «так чи ні». Компаратор працює з величиною: він дивиться на силу сигналу і вміє порівнювати її з бічною або віднімати бічну з основної. Перемикається між двома режимами клацанням, і видно це по вогнику спереду.

Найнаочніше його застосування — скриня. Поставте компаратор упритул до скрині, і він видасть сигнал тим сильніший, чим повніша скриня. Порожня дає нуль, одна річ — одиницю, забита по вінця — п'ятнадцять. Звідси збирається сортувальник, сигналізація «склад заповнений» і лічильник предметів у фермі.

Для дитини це важливий перехід: раніше сигнал був перемикачем, а тепер став числом, яке можна порівнювати. У програмуванні ця ж різниця живе між перевіркою «файл існує» і перевіркою «у списку більше десяти елементів».

Як перевіряти схему, не вгадуючи

Коли схема не працює, більшість дітей починають переставляти блоки навмання. Швидше інший шлях, і він теж повністю переноситься в програмування: перебрати всі можливі стани входів по порядку.

У схеми з двома важелями таких станів рівно чотири: обидва вимкнені, перший, другий, обидва. Пройдіть їх по черзі й запишіть, що на виході. Три правильні відповіді з чотирьох одразу показують, у якому саме місці ламається логіка, і далі шукати доводиться не по всій конструкції, а в одному вузлі.

Звичка пробувати всі варіанти, а не той один, який спав на думку, — чи не найкорисніше, що редстоун дає до програмування. Саме так потім перевіряють код.

Три речі, через які схема не працює

Перша: сигнал згас дорогою. Доріжка довша за п'ятнадцять блоків без повторювача просто не доносить напругу, і виглядає це так, ніби зламалася кінцева деталь. Якщо схема перестала працювати після того, як її подовжили, — справа майже завжди в цьому.

Друга: сигнал пішов назад. Пил проводить в обидва боки, і дві сусідні схеми починають впливати одна на одну. Повторювач пропускає тільки вперед, і одна така деталь на виході кожного вузла знімає більшість таких загадок.

Третя: факел згорів. Якщо схема перемикається занадто швидко сама на себе, факел починає блимати і на якийсь час вимикається зовсім — гра захищається від нескінченного циклу. Поява такого блимання майже завжди означає, що вихід схеми випадково заведений на її ж вхід.

Коли логіка зрозуміла, наступний крок — зібрати на ній щось працююче: ферму, двері з паролем, лічильник. Команди для цього є в довіднику команд, назви потрібних блоків — у довіднику ID, а як це пов'язано з текстовим кодом, розібрано в матеріалі про Python у Minecraft.