这是一个编程游戏!
你的任务是对电梯的动作进行规划, 用JavaScript编写.
目标是以高效的方式运输人.
你可以通过越来越的困难挑战取得更好成绩.
只有最优秀的程序才能完成所有的挑战
在游戏视图的输入窗口中输入你的代码,然后按 “应用”按钮开始.
你可以按增加或减少时间的速度和按钮
如果您的程序包含一个错误,您可以使用您的网络浏览器中的开发工具来调试它。.
如果你想从代码开始,按重置按钮。这将恢复到最原始的代码。.
如果你有一个最喜欢的文本编辑器, 例如 Sublime Text, 编写后并粘贴到游戏编辑器
您的代码是自动保存在您的本地存储, 所以不要担心-当你关闭浏览器它不会消失。
你的代码必须声明中至少含有两个方法叫做init 和 update. 例如:
{
init: funtcion(elevators, floors) {
// elevators floors 这两个是数组,
},
update: funtcion(dt, elevators, floors) {
// dt 是一个秒变量,表示多少时间执行更新
}
}这些方法会在游戏中循环调用
init 方法是开始游戏的时候进行调用, update 在固定时间间隔调用.
通常会把代码放在init 方法,来设置监听和逻辑
elevator.goToFloor(1);if(elevator.currentFloor() > 2) { ... }以监听的事件:如在一个楼层时,或一个按钮已被按下。
elevator.on("idle", function() { elevator.goToFloor(0); });
elevator.on("floor_button_pressed", function(floorNum) { ... } );floor.on("up_button_pressed", function() { ... } );| 属性 | 类型 | 说明 | 例子 |
|---|---|---|---|
| goToFloor | 方法 | 跳转到指定楼层 | |
| stop | 方法 | 清除需要跳转楼层队列,并且停止电梯。 | |
| currentFloor | 方法 | 当前楼层 | |
| goingUpIndicator | 方法 | 是否允许电梯可以上楼 如果为false 则按向上的人不会进电梯 | |
| goingDownIndicator | 方法 | 是否允许电梯可以下楼 如果为false 则按向下的人不会进电梯 | |
| maxPassengerCount | 方法 | 最大人数 | |
| loadFactor | 方法 | 当前电梯载重 小数 0 表示空载 1表示满载 一般取不到1 | |
| destinationDirection | 方法 | 当前电梯方向 up down stopped | |
| destinationQueue | array | 当前的队列数组,里面是楼层数字,按队列顺序排列 如果更改调用checkDestinationQueue() | |
| checkDestinationQueue | 方法 | 重新执行队列 会按照先后顺序执行 | |
| getPressedFloors | 方法 | 电梯里面按的楼层数组 按照从小到大排序 | |
| currentPassengerCount | 方法 | 当前电梯人数 | |
| 事件 | 说明 | 例子 |
|---|---|---|
| idle | 当电梯完成了所有的任务,并没有做任何事情。 | |
| floor_button_pressed | 当乘客进入电梯按下按钮时 | |
| passing_floor | 在电梯会经过某层楼(还没有到)前时, |
|
| stopped_at_floor | 电梯在某一楼(floorNum)时触发 | |
| 属性 | 类型 | 说明 | 例子 |
|---|---|---|---|
| floorNum | 方法 | 获取楼层对象的楼层数 | |
| 事件 | 说明 | 例子 |
|---|---|---|
| up_button_pressed | 当乘客按了“上“按钮。 请注意,如果乘客未能进入电梯,乘客将再次按下按钮。 |
|
| down_button_pressed | 当乘客按了“下”按钮。 请注意,如果乘客未能进入电梯,乘客将再次按下按钮。 |
|