题目描述
有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。一个机器人从起点走到终点。当机器人走到一个通道块,前面已经没有路可走时,它会转向到当前面向的右手方向继续走。如果机器人能够过,则留下足迹‘*’,如果走不通,则留下标记‘!’。
下面给出书中的算法,请你模拟机器人的走法输出最终的状态。
有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。一个机器人从起点走到终点。当机器人走到一个通道块,前面已经没有路可走时,它会转向到当前面向的右手方向继续走。如果机器人能够过,则留下足迹‘*’,如果走不通,则留下标记‘!’。
下面给出书中的算法,请你模拟机器人的走法输出最终的状态。
输入
一个 10 x 10 的二维字符数组。
输出
机器人走过的路径状态。
#include <iostream>
#include <stack>
#include <cstdio>
using namespace std;
#define N 10
struct MazeCell{
int i,j; //行列
char sign; //符号
int direction; //1 2 3 4分别表示东南西北
};
class Maze{
private:
MazeCell Map[N][N];
MazeCell start;
MazeCell end;
public:
void inputMap(){
for(int i = 0; i < N; i++){
char str[N+1];
gets(str);
for(int j = 0; j < N; j++){
this->Map[i][j].sign = str[j]