Руководство по Elevator Saga

Elevator Saga: управление, советы по стратегии и ответы со ссылками на игру и подробные инструкции.

Играть в Elevator Saga

Программирование контроллера лифта

Отредактируйте функции JavaScript, init и update, затем нажмите «Старт», чтобы запустить контроллер.

Управление и полные инструкции

Проверка события idle перед добавлением правил маршрутизации.

Контроллер, работающий на основе событий, может назначать лифту новое задание, когда он становится idle.

Управление и полные инструкции

Проверьте одно решение контроллера перед добавлением политики маршрутизации.

Начните с JavaScript в функциях init и update игры и нажмите «Старт», чтобы наблюдать за симуляцией. Используйте внутриигровую ссылку на API, чтобы узнать точное поведение события idle и goToFloor. Первое упражнение — понять, когда неработающий лифт получает следующее задание. Наблюдайте за этим событием и возникающим в результате движением, прежде чем добавлять несколько условий, чтобы можно было объяснить, какая часть контроллера выдала запрос.

Затем осмотрите пассажирские направления. Само по себе движение не означает, что пассажиры обслуживаются. Прочтите событие floor_button_pressed в справочнике и сравните запросы с маршрутом, который вы наблюдаете. Если несколько лифтов повторяют один и тот же маршрут, некоторые очереди все равно могут ждать. Создайте из небольшого контроллера, который вы понимаете, вместо того, чтобы копировать сложную политику и предполагать, что она удовлетворяет целям пассажира или времени ожидания текущей задачи.

Сравните изменение кода с фактической целью челленджа

Перед запуском симуляции прочтите условие прохождения задания и выберите одно поведение для проверки, например время простоя, повторяющиеся остановки или ожидание пассажиров на определенном этаже. Измените одно решение и запустите симуляцию снова. Более частое движение лифта не означает, что контроллер выполняет условия задания. Сравните видимые очереди и отображаемый результат с целью, а не используйте движение как единственный признак успеха.

При непосредственном редактировании destinationQueue следуйте требованию ссылки вызвать checkDestinationQueue, чтобы измененная очередь вступила в силу; обычные запросы goToFloor уже обрабатывают адресаты в очереди. Сохраняйте эти подходы разными во время отладки. В этом центре описывается симуляция программирования через браузер, а не программное обеспечение для реального лифта или системы безопасности производства. Это не гарантирует, что один диспетчер справится со всеми испытаниями. Используйте точную документацию API внутри игры, а затем запишите, какое событие и изменение маршрутизации улучшили конкретный тест, который вы только что выполнили.

Для конкретного обзора посмотрите этаж с очередью, пока лифт простаивает. Определите, какой обработчик отправляет следующий запрос goToFloor и обслуживает ли этот запрос ожидающих пассажиров или отправляет машину в другое место. Измените этот вариант маршрутизации, а затем сравните результат запроса. Если конкурируют несколько обработчиков, упрощайте контроллер до тех пор, пока не сможете объяснить последовательность запросов. Используйте ссылку API для конкретных поддерживаемых событий. Наблюдение за одной очередью и одним решением за раз дает вам свидетельство пересмотра, не утверждая, что это универсальный оптимальный контроллер.

Советы и стратегия для Elevator Saga

Отметьте совет для следующей попытки. Этот список не меняет игру и не сохраняет игровой прогресс.

Вопросы и ответы по Elevator Saga

На каком языке я пишу?

В качестве контроллера используется JavaScript, а в редакторе игры доступны функции init и update.

Это настоящий лифт?

Нет. Это симулятор программирования, полностью реализованный в браузерной игре.

Можно ли использовать это для практики программирования?

Да, в частности, управление, основанное на событиях, и тестирование небольших изменений. Игра основана на проекте magwo под лицензией MIT Elevator Saga; это не курс сертификации.

Почему пассажиры ждут, хотя лифт движется?

Повторяемый маршрут не обслуживает все запрошенные этажи автоматически. Обработайте floor_button_pressed и используйте goToFloor для пунктов назначения. Сравните очереди с целью задания перед добавлением остановок. После прямого изменения destinationQueue вызовите checkDestinationQueue; обычные запросы уже обрабатывает goToFloor.

Управление и полные инструкции

Управление и полные инструкции

Играть в Elevator Saga