第一行讀入 maxX 和 maxY。
使用 while (cin >> x >> y >> current_dir) 讀取機器人的初始狀態,接著讀入指令字串 commands。
遍歷 commands 字串中的每個字元:
如果是 'L' 或 'R':更新方向索引。
如果是 'F':
計算新位置 (nx, ny)。
檢查是否越界。
若越界:
檢查是否有氣味。
若無氣味 -> 標記氣味、標記為 LOST、跳出迴圈。
若有氣味 -> 不做任何事(留在原地)。
若沒越界:更新 (x, y)。
用一個二維布林陣列 bool has_scent[51][51] 來記錄。
處理方向
可以建立一個字串 string dirs = "NESW";,並配合 dx = {0, 1, 0, -1} 和 dy = {1, 0, -1, 0}。
指令 'R':( 目前的索引 + 1 ) % 4
指令 'L':( 目前的索引 + 3 ) % 4
指令 'F':目前的 ( x, y ) 加上對應方向的 ( dx, dy )