13.11 實作題怎麼寫
前面十節的零件湊在一起,就是 APCS 中級第 2 題的完整工具箱。最後說說寫的順序——實作題失分的地方通常不在不會,而在漏掉一條規則、寫反一個方向、少判一次邊界。
- 先把規則排好,再開始寫。 把題目的每一條規則編號抄在紙上(或註解裡),程式主迴圈就照這個順序寫,一條規則一段註解——蒐集寶石那份程式碼就是這樣長出來的。
- 零件先寫好。
inside、方向表、標記表在讀完題目的第一分鐘就可以先寫,不用等想通整題。 - 一個功能一個函式。 「這格能不能放」(
canPlace)、「從這格看到幾格」這種會重複問的問題包成函式,主程式只剩流程;變數取名盡量跟題目一樣(R、C、K),一個月後回來看也讀得懂。 - 常數用
const。 方向表、陣列上限都是const int,不要在程式裡散落4、100這種字面常數。 - 交出去之前自己造測資。 兩個範例都跑;再造幾個極端情況——1 \times 1 的地圖、起點在角落、整張都是牆、一整列——「範例過了大測資 RE」幾乎都是邊界沒判到,這種測資自己造最快(16.6)。