Лифтовая Сага: Код вместо кнопок

Большинство игр про управление просят вас нажать кнопку. Лифтовая Сага просит написать программу. Вы получаете здание с этажами, несколько лифтов и бесконечный поток человечков, которым срочно куда-то надо. Кнопок у вас нет — есть редактор JavaScript и две функции: init и update.

Скриншот игры «Лифтовая Сага»

Задача звучит обманчиво просто

Перевезите 15 человек. Потом — перевезите 20 за 60 секунд. Потом — чтобы максимальное ожидание не превысило 10 секунд. Потом — чтобы лифты сделали не больше N перемещений. Всего 20 заданий, и каждое следующее бьёт именно в то место, где ваш алгоритм был «ну примерно нормальным».

Первое задание проходится кодом из трёх строк: «ехать на первый нажатый этаж». Пятое — уже нет. Выясняется, что лифт разворачивается посреди пути, потому что кто-то нажал кнопку позади, что пассажиры не садятся в лифт, идущий не в их сторону, и что три лифта без координации работают хуже одного вменяемого.

Чем это полезно, кроме удовольствия

Это редкий случай, когда головоломка честно учит двум вещам: читать состояние системы перед действием и не оптимизировать раньше времени. Сначала вы пишете тупейший алгоритм, смотрите, где он ломается, и только потом добавляете условие. Именно так пишут рабочий код, просто обычно за это не дают очков.

Плюс игра полностью двуязычная: интерфейс, условия заданий и документация переключаются на русский и английский — можно решать на том языке, на котором думаете.

Та же задача, другая ручка

Сосед по цеху — светофоры. В Зелёной волне поток машин тоже нужно провести без остановок, но кода там нет: вы крутите длину цикла и доли зелёного, пока фазы не сойдутся. Навык противоположный — побеждает тот, кто чувствует ритм перекрёстков, а не тот, кто аккуратно назвал переменные.

Если хочется такой же возни с ограниченным ресурсом, только без редактора, включите оборону с электросетью. Четыре башни, каждая требует питания, сеть валится от перегруза, а волн ровно десять. Двадцати заданий там нет, зато каждое решение видно сразу.

И отдельный тест на характер: Стратегия Аутс: Колесо Судьбы строит прогресс на жребии. Ваш алгоритм не решает там ничего. Полезно проверить, насколько это раздражает.

С чего начать

  • Откройте первое задание и нажмите Apply, даже не меняя код. Посмотрите, как лифты тупят.
  • Добавьте в update проверку elevator.getPressedFloors() — это уже пройдет первые задания.
  • Когда упрётесь в ожидание, зайдите во вкладку «Документация»: там список всех методов с примерами, включая события passing_floor и stopped_at_floor.
  • Не бойтесь Reset: исходный код задания всегда можно вернуть.

Играть в Лифтовую Сагу

Мы используем ку​ки для аналитики. Нажимая «ОК», вы соглашаетесь.

Подробнее