Elevator Saga 攻略

Elevator Saga:了解操作、策略技巧和常见问题,通过链接进入游戏或阅读详细说明。

游玩 Elevator Saga

对电梯控制器进行编程

编辑 JavaScript、init 和 update 函数,然后按 Start 键运行你的控制器。

操作与完整玩法说明

在添加路由规则之前测试 idle 事件

基于事件的控制器可以在电梯状态变为 idle 时为其分配新任务。

操作与完整玩法说明

添加路线策略前,先理解一次调度

先在游戏的 init 和 update 函数中写 JavaScript,按 Start 观察模拟。通过游戏内 API 文档,核对 idle 事件和 goToFloor 的行为。第一个练习是观察空闲电梯什么时候收到下一个任务,以及哪段控制器代码发出了请求;理解后再添加多个条件。

接着检查乘客目的地。电梯在移动,不代表乘客需求已被满足。阅读 floor_button_pressed 事件,把收到的请求与实际路线比较。多部电梯重复同一路线时,其他队伍仍可能在等。先从理解的小控制器扩展,不要直接复制复杂策略,就假设能满足当前人数或等待时间目标。

用关卡目标评价修改,而非只看电梯是否在动

运行前,先读通过条件,只选一项行为检查,例如空闲时间、重复停靠或某层等待的乘客。修改一次决策再运行。轿厢更频繁地移动,并不代表策略能通过关卡;应把可见队列和结果与任务目标比较。

直接修改 destinationQueue 时,应按文档调用 checkDestinationQueue,让新的队列生效;正常的 goToFloor 请求已有相应的排队处理。调试时要分清两种用法。这是浏览器编程模拟,不是实际电梯或安全系统的软件,也不能保证一个控制器通过所有关卡。按游戏内准确 API 记录哪项事件处理或路线调整改善了这次测试。

复盘时,观察某层的等待队伍和电梯变为空闲的时刻,找出哪个处理函数发出了下一次 goToFloor 请求:它是在服务这层乘客,还是把轿厢送往别处?只改这项选择,再比较关卡结果。多个处理函数互相冲突时,先简化到能解释请求顺序的程度。每次观察一支队伍和一项决策,就能据此修改,无须宣称通用最优解。

Elevator Saga 技巧和策略

勾选下一局想练习的技巧。这份清单不会改变游戏或保存游戏进度。

Elevator Saga 问题和答案

我用哪种语言写作?

控制器使用 JavaScript,游戏编辑器中还有 init 和 update 功能。

这个电梯是真的能运行的吗?

不,这是一个完全在浏览器游戏内进行的编程模拟。

我可以用它来练习编程吗?

是的,特别是事件驱动控制和测试微小改动。这款游戏基于magwo的MIT许可的Elevator Saga项目;它并非认证课程。

电梯一直在移动,乘客为什么还在等待?

重复跑固定路线不等于服务了所有请求的楼层。处理 floor_button_pressed 事件,用 goToFloor 把乘客送到目的地。先对照挑战目标观察等待队列,再增加停靠点。若直接编辑 destinationQueue,需要调用 checkDestinationQueue 让修改生效;普通排队请求由 goToFloor 处理。

操作与完整玩法说明

操作与完整玩法说明

游玩 Elevator Saga