Botbright: Игра по программированию.

🇬🇧 English · 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇮🇹 Italiano · 🇵🇹 Português · 🇷🇺 Русский · 🇨🇳 中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇮🇳 हिन्दी · 🇧🇩 বাংলা · 🇻🇳 Tiếng Việt · 🇸🇦 العربية · 🇹🇭 ไทย · 🇳🇴 Norsk · 🇳🇱 Nederlands · 🇸🇪 Svenska · 🇹🇷 Türkçe · 🇰🇪 Kiswahili · 🇮🇩 Bahasa Indonesia · 🇵🇱 Polski · 🇬🇷 Ελληνικά · 🇮🇱 עברית · 🇵🇭 Filipino · 🇨🇿 Čeština · 🇩🇰 Dansk · 🇫🇮 Suomi · 🇷🇴 Română · 🇭🇺 Magyar · 🇭🇷 Hrvatski


Botbright — это однофайловый JavaScript-клон Flash-головоломки Lightbot. Запрограммируй изометрического робота, чтобы он ходил по 3D-сетке плиток и зажигал синие целевые плитки. Перетаскивай плитки команд в память робота, нажимай Старт и наблюдай, как выполняется твоя программа.

Вся игра — это один HTML-файл (botbright.html) с встроенными CSS и JavaScript: ни сборки, ни внешних зависимостей, ни сетевых запросов. Открой файл в любом современном браузере и играй. Сохрани его на жёсткий диск — он будет работать офлайн навсегда.

Можно также менять цветовую схему и надевать на робота разные шляпы. В игре есть встроенный редактор уровней, а уровни и шляпы можно импортировать и экспортировать в формате JSON.

Играть

Просто дважды кликни по файлу botbright.html или открой его в браузере. Игра работает офлайн.

Онлайн-версия: https://inventwithpython.com/botbright/

Как это работает

У робота три области памяти:

  • Основная память — 12 ячеек команд, выполняется при нажатии «Старт»
  • Память F1 — 8 ячеек команд, вызываемая функция
  • Память F2 — 8 ячеек команд, вторая вызываемая функция

Перетаскивай плитки команд из палитры в память. Меняй порядок, перетаскивая между ячейками. Перетащи плитку из ячейки, чтобы удалить её.

Команда Что делает
Вперёд Шагнуть на плитку впереди, если она той же высоты
Налево Поворот на 90° против часовой стрелки
Направо Поворот на 90° по часовой стрелке
Прыжок Подняться на один уровень или спрыгнуть на любое число вниз
Зажечь Переключает целевую плитку под роботом
Вызвать F1 / F2 Кладёт функцию в стек вызовов (рекурсия разрешена, с ограничениями)

Уровень пройден, когда все целевые плитки горят жёлтым.

Слишком долго работающие программы останавливаются: максимум 1000 команд всего, максимум 100 кадров в стеке вызовов.

Управление

Камера — WASD или стрелки для перемещения, Q/E или PageUp/PageDown для поворота на 90°, +/− или колесо мыши для масштабирования. Нажми 0, чтобы сбросить вид. Перетаскивай канвас, чтобы двигать камеру, щипай для масштаба, поворачивай двумя пальцами. Удерживай экранные кнопки камеры для плавного непрерывного движения.

Ширина боковой панели — перетащи разделитель между канвасом и панелью.

Скорость — ползунок в боковой панели: медленно / нормально / быстро. Можно менять во время выполнения.

Редактор уровней

В комплекте есть полноценный редактор. Добавляй/копируй/удаляй уровни, меняй размер сетки (1–32 по каждой стороне), рисуй высоты 0–9, отмечай целевые плитки, задавай стартовую позицию и направление, тестируй уровень, не выходя из редактора.

Весь набор уровней экспортируется в JSON и так же импортируется, чтобы ты мог делиться уровнями или сохранять резервные копии.

Редактор шляп

Робот может носить шляпы. В комплекте девятнадцать вариантов: Без шляпы, Цилиндр, Шляпа волшебника, Корона, Шапка, Бейсболка, Ковбойская шляпа, Праздничный колпак, Котелок, Нимб, Рога дьявола, Сомбреро, Шляпа ведьмы, Феска, Рога, Заячьи уши, Кошачьи уши, Водолазный шлем и Шлем викинга. Каждая шляпа определяется четырьмя SVG-спрайтами — по одному на каждое экранное направление — чтобы шляпа следовала за направлением робота при любых поворотах камеры (козырёк бейсболки, пряжка ведьминой шляпы, иллюминатор водолазного шлема и заячьи/кошачьи уши смещаются соответственно). Живой предпросмотр поворачивает робота раз в секунду, чтобы ты видел шляпу со всех сторон. Шляпы также экспортируются и импортируются в JSON для своих дизайнов.

Цветовые схемы

Панель Цвета в боковой панели игры открывает палитру: цвет плиток, цвет границ плиток, цвет целей, цвет зажжённых целей, фон и тело робота. Можно использовать встроенную тему или настроить вручную.

Языки

Переводы интерфейса на 23 языка: английский, испанский, французский, немецкий, итальянский, португальский, русский, китайский, японский, корейский, хинди, бенгальский, вьетнамский, арабский (с раскладкой справа налево), тайский, тагальский, норвежский, нидерландский, шведский, турецкий, суахили, индонезийский и польский. Язык по умолчанию определяется по navigator.language браузера; селектор языка на стартовом экране переопределяет его на время сессии. Имена и описания встроенных уровней, а также названия встроенных шляп, переведены на все поддерживаемые языки. При редактировании имени или описания редактор уровней пишет только в слот текущего языка, оставляя остальные переводы нетронутыми.

Светлая / тёмная тема

Следует prefers-color-scheme браузера для интерфейса приложения. Выбор темы По умолчанию в панели Цвета применяет палитру, соответствующую текущему режиму браузера, и остаётся синхронизированной при переключении режима. Любая другая встроенная тема — или собственная палитра — переопределяет это поведение.

Авторы

Создал Al Sweigart — https://inventwithpython.com/botbright/

Вдохновлено Lightbot Дэниела Ярославски.