題目描述
有乙個 10 x 10 的迷宮,起點是『s』,終點是『e』,牆是『#』,道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡『*』,如果走不通,則留下標記『!』。
下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀態。
輸入 乙個 10 x 10 的二維字元陣列。
輸出 機械人走過的路徑狀態。
#include #include #include using namespace std;
#define n 10
struct mazecell;
class maze
if(this->map[i][j].sign == 'e')}}
}void print()
cout << endl;}}
bool ispath(int i,int j)
void findpath()
//cout << count << endl;
m = path.top();
int i = m.i,j = m.j;
m = this->map[i][j]; //第一步:取棧頂
if(m.direction == 0 || m.direction == 1)else
//走不通就換方向
}else if(m.direction == 2)else
//走不通就換方向
}else if(m.direction == 3)else this->map[m.i][m.j].direction = 4; //走不通就換方向
}else if(m.direction == 4)else this->map[m.i][m.j].direction = 5; //走不通就換方向
}else if(m.direction == 5)
else
}if(path.empty()) return;
this->map[this->end.i][this->end.j].sign = '*';
}};int main()
HNCU1742 演算法3 3 迷宮
有乙個 10 x 10 的迷宮,起點是 s 終點是 e 牆是 道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡 如果走不通,則留下標記 下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀態。圖 迷...
ACM 迷宮問題
使用dfs的方法對所有路徑進行遍歷,當某路徑可以到達終點時,使用乙個向量儲存路徑,並使用乙個陣列儲存他的路徑長度,最後輸出路徑最短的路徑。include include include using namespace std int m,n int vis 5 5 int f 4 2 左,上,右,下...
ACM 迷宮問題
定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...