關於此實驗
編寫一個小程式,並在立體棋盤上進行測試。機器人會嚴格按照每條指令行動,因此受阻的移動或錯誤的轉向都會清楚呈現。比較預期路線與實際執行軌跡,接著編輯程式並再次嘗試。
學習目標
- 將路線轉換為依序排列的精確指令。
- 檢查每個步驟之後的位置和朝向,以偵錯程式。
- 說明在不變更指令的情況下,變更障礙物如何影響程式結果。
使用方法
- 1執行初始程式,並找出與預期路線不符的第一條指令。
- 2倒轉程式,然後使用「單步」和「返回」檢查每條指令執行後的位置。
- 3載入「路線範例」,預測終點,再執行程式前往目標。
- 4向上拖曳一個棋盤格,建立障礙物。使用命令按鈕修正路線,然後記錄程式及其結果。
模型
假設
- 棋盤有六列六欄。機器人從左下角出發,面朝右方;目標在右上角。
- 前進指令會移動一格。左轉和右轉會旋轉90度,但不會移動。發生碰撞或抵達目標時,執行便會結束。
- 機器人是指令直譯器,並非剛體物理模擬。視覺插值不會改變離散的格子位置。
在課堂上試試這個實驗
- Q1為什麼相同的指令在一個棋盤上可行,移動牆壁後卻會失敗?
- Q2如果可以使用重複指令,如何才能編寫更短的程式?
常見問題
機器人會自己找路嗎?
不會。它會完全按照提供的指令序列執行。尋找並修正路線就是這項實驗的目的。
撞到牆時會發生什麼事?
機器人會停留在最後一個有效格子,標示該步受阻,並停止程式。