單元地圖
¶前置知識
- ✓ 二維陣列的宣告、初始化與遍歷(上冊 6.9),以及索引從 0 開始數(上冊 6.3)
- ✓ 自己寫函式,特別是回傳
bool的判斷函式與短路求值(上冊 7.4) - ✓
vector、巢狀vector與string(10.2、10.3、10.7)、pair(10.11) - ✓ 參考、以範圍為基礎的 for 迴圈、結構化綁定(12.3、12.4、12.5)
¶學習成果
本單元結束後,你將能夠:
- ✓ 把題目裡的方格、棋盤、矩陣讀進二維陣列,並用「第 i 列第 j 行」的口徑與 APCS 題目對話
- ✓ 寫出邊界判斷函式
inside,並知道為什麼它一定要放在存取陣列之前 - ✓ 用方向表
dr[]/dc[]取代一大串if,並解釋為什麼方向要順時針排 - ✓ 模擬「一步一步走、聽指令或撞牆就轉向」的角色
- ✓ 模擬「沿固定方向一直走到停」的射線,並用標記表記錄走過的格子
- ✓ 枚舉一格的四鄰格、八鄰格與曼哈頓距離範圍,出界的格子不算
- ✓ 分辨「同時發生」與「依序處理」,用兩張表寫出同步更新
- ✓ 枚舉子矩陣的左上角做平移比對;把形狀打成表再檢查碰撞
- ✓ 寫出旋轉與翻轉的座標公式,並用反操作把矩陣還原
- ✓ (延伸)從中心往外螺旋走訪
- ✓ 把一道實作題的規則排好,一條一條翻譯成程式碼,並在交出去前用小測資檢查