語法書 / AA 競程語法書 下冊 / 第十三單元 / 沿一個方向一直走:射線與標記表

13.5 沿一個方向一直走:射線與標記表

圖 13-3:從一格出發——四條射線、四鄰格、八鄰格

第二種常見的動作是沿著固定方向一直走,直到出界或撞到東西——像一道射線。寫法就是把上一節的「算下一格、檢查、踏上去」放進 while:

int r = sr, c = sc, steps = 0;           // 從起點出發
while (true) {
    int nr = r + dr[d], nc = c + dc[d];
    if (!inside(nr, nc) || grid[nr][nc] == '#') break;   // 出界或撞牆:停
    r = nr;  c = nc;                                       // 踏上去
    steps++;
}

登入後即可閱讀完整內容

語法書免費開放給所有 AACPOJ 帳號,註冊只要一分鐘。