[題解] UVa 11831 - Sticker Collector Robot
Tags
- 題解
- UVa
- E難度
略譯
有一台機器人在一個 nxm 大小的廣場上,
依序執行一連串指令,每個指令有 D、E、F 三種可能,
分別代表向右轉 90 度、向左轉 90 度、前進一格。
地圖上 * 代表放著點棒,走到就會撿起並獲得一分,
地圖上 # 代表是不能走的地方,機器人試圖走到 # 或走出廣場時,
會被擋在原地,那次移動指令無效且位置不變。
地圖上有 N、S、L、O 時代表那是機器人的位置,只會有一台機器人,
N 代表面向北方,S 代表南方,L 代表東方,O 代表西方;
問機器人執行完所有指令後,共獲得多少分。
題解
照題目敘述模擬即可。
實作提示
- 方向可以用 0~3 來代表。
至於數字多少代表哪個方向,可以自行定義。- 但建議讓 +1 和 -1 之後剛好是左轉或右轉 90 度後的方向,方便轉向。
- x, y 的變動量可以用陣列來存,
將方向作為 index 傳入,回答相對的 x, y 變動量。會好寫很多。 - 先把要前進目的地的 x, y 放在別的變數,方便先判斷能不能走;
不用等不能走再來復元。
cmusu