學習軌道
/
Erlang
Erlang
/
練習
/
機器人模擬器
機器人模擬器

機器人模擬器

中等

說明

撰寫一個機器人模擬器。

某間機器人工廠的測試設施需要一支程式來驗證機器人的移動。

機器人有三種可能的移動:

  • 向右轉
  • 向左轉
  • 前進

機器人會被放在一個假想的無限網格上,面朝某個特定方向(北、東、南或西),並位於一組 {x,y} 座標上,例如 {3,8},座標值往北和往東遞增。

接著機器人會收到一連串指令,此時測試設施會驗證機器人的新位置,以及它面朝哪個方向。

  • 字母字串 "RAALAL" 的意思是:
    • 向右轉
    • 前進兩次
    • 向左轉
    • 前進一次
    • 再一次向左轉
  • 假設機器人從 {7, 3} 出發,面朝北方。 那麼執行這串指令後,它應該會停在 {9, 4},面朝西方。

實作

這個練習確實需要為你的機器人準備某種全域狀態。在 Erlang 中,做法有很多種(以下從最道地的開始排列):

  1. 使用 OTP 提供的gen_*。
  2. 自己建立行程,在迴圈中接收訊息,並把狀態當作參數傳遞。
  3. 自己建立行程,並使用行程字典。

出處

靈感來自某知名公司的面試題目。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Erlang Exercism

準備好開始 機器人模擬器 了嗎?

註冊 Exercism,透過 85 個練習 和真人引導來學習並精通 Erlang,全部免費。