light-bot

          • 今天要介紹的小遊戲叫做 light-bot

          • 遊戲的玩法很簡單,只要讓機器人把所有的地板給點亮即可

          • 不過要操控機器人行走,要用類似程式語言的指令來完成

          • 所以沒有程式設計師那樣很好的邏輯概念恐怕還玩不下去呢

          • 遊戲網頁

          • 看到右上角那些圖形了嗎?那些就是可以操控機器人行走的路徑

          • 只要把它給拖到底下的MAIN METHOD中,即可讓機器人作動作

          • 這七個指令從左到右分別是直走、右轉、左轉、跳躍、點燈、函式1、函式2

          • 碰到較高的地形時(如上圖),執行跳躍指令能讓機器人往前跳一格

          • 當機器人走到藍色地板上,執行點燈指令即可把燈點亮

          • 再點一次的話燈就會熄滅

          • 此外也可把指令放到函式1、2區域中,再執行函式1、2指令來呼叫它們

          • 因為MAIN METHOD最多只能用12個方格

          • 後期關卡較大,如果把指令通通放在MAIN的話絕對會超過

          • 所以一定需要用call function的方式來減少重複的指令

          • 值得一提的是,函式1裡面也可以呼叫函式2

          • 甚至要函式1呼叫函式1也行(遞迴)

          • 但要注意因為遊戲中並沒有條件判斷式

          • 如果呼叫自己的話可能導致無限回圈的情況

          • 不過因為遊戲只要能點完所有地板就直接過關

          • 所以只要呼叫自己能確保燈點光,也是可以這樣做

          • 如下圖就是函式2呼叫自己來減少指令數的方法

          • 遊戲除了破關外,右下角的Total Commands會紀錄共12關完成的指令數

          • 遊戲的魅力在於可以靠各種奇怪的function call來減少指令

          • 機器人在空的地方執行跳躍、點燈之類的指令都是可以的

          • 所以有不少增加無謂動作但能減少指令的方法

          • 像是參考第一張圖跟下圖,

          • 原本需要十個指令才能破關,可以縮減到九個指令就破關

          • 你能想出來這些方法嗎?

          • 總之,這對於接觸寫程式的人來說,是個非常刺激腦力的小遊戲

          • 在各種嘗試之後減少指令破關,真的是很有成就感的事

          • 但如果你真的破不了關,也可以看一下YouTube上的解答影片啦