【問題描述】以下圖(a)所示的巧虎機器人有幾種作業模式,其中行走編程模式具有簡單的編程功能,能接收前進(F)、后退(B)、左轉(L)、右轉(R)四種指令,輸入一系列指令,然后按下OK鍵,巧虎機器人就在圖(b)所示的地圖上從起始位置出發執行指令序列對應的動作,假定機器人最初的朝向是向北。輸入地圖(包含巧虎的起始位置)和指令序列,輸出巧虎的最終位置和朝向。
【輸入形式】輸入檔案包含多個測驗資料,每個測驗資料包含3部分,第1部分占一行,為兩個整數,M N(用空格隔開),2<M, N<=20,表示地圖的行和列(行號和列號均從1開始計起);第2部分也占一行,為一行字串,只包含F、B、L、R四種字符,表示巧虎機器人接收到的指令序列,長度不超過100個字符;第3部分占M行,每行有N個字符,這些字符可能為
點號“.”,表示可通行的方格;
字符“S”,表示巧虎機器人的起始位置(測驗資料保證地圖中只有一個“S”)
字符“*”,表示障礙物,不可通行。
輸入檔案最后一行為“0 0”,代表輸入結束。
注意:1) 如果接收到的指令為'B'(后退),則往當前朝向的反方向后退一個方格,但朝向不變;
2) 巧虎機器人不能出邊界,也不能進入到有障礙物的方格,因此如果執行一個指令后出邊界了或進入了有障礙物的方格,則這個指令無效,跳過這個指令,繼續執行下一個指令。
【輸出形式】對每個測驗資料,輸出占一行,為兩個整數及一個字符,用空格隔開,表示巧虎機器人最后所處的位置(即行號和列號)及朝向。注意:用n, e, s, w分別表示朝北、東、南、西。
【樣例輸入】
5 5
FFLRBFLLRBLLF
*...*
.*...
..S..
.*.*.
..*..
0 0
【樣例輸出】
1 4 e
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269654.html
標籤:C語言
上一篇:請教一個多執行緒加鎖問題!
下一篇:C++習題
