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