rendered paste body#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void printMaze(char maze[12][12],char rows,char cols);
void mazeTraverse(char maze[12][12], int row, int col, char direction);
int main(void)
{
char maze[12][12] = {
{'#','#','#','#','#','#','#','#','#','#','#','#'},
{'#','.','.','.','#','.','.','.','.','.','.','#'},
{'.','.','#','.','#','.','#','#','#','#','.','#'},
{'#','#','#','.','#','.','.','.','.','#','.','#'},
{'#','.','.','.','.','#','#','#','.','#','.','.'},
{'#','#','#','#','.','#','.','#','.','#','.','#'},
{'#','.','.','#','.','#','.','#','.','#','.','#'},
{'#','#','.','#','.','#','.','#','.','#','.','#'},
{'#','.','.','.','.','.','.','.','.','#','.','#'},
{'#','#','#','#','#','#','.','#','#','#','.','#'},
{'#','.','.','.','.','.','.','#','.','.','.','#'},
{'#','#','#','#','#','#','#','#','#','#','#','#'}
};
mazeTraverse(maze,2,0,'e');
return 0;
}
void printMaze(char maze[][12],char rows, char cols)
{
int i,j;
for(i = 0; i<rows; i++)
{
for(j = 0; j<cols; j++)
{
cout<< maze[i][j];
}
cout<<endl;
}
}
void mazeTraverse(char maze[][12],int row, int col, char direction)
{
int enter = 0;
maze[row][col] = 'x';
printMaze(maze,12,12);
if(maze[row][col] == maze[row][11])
{
return;
}
else if(direction == 'e')
{
if(maze[row+1][col] == '#' && maze[row][col+1] == '.')
{
maze[row][col] = '.';
col = col + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'e';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row+1][col] == '#' && maze[row][col+1] == '#' && maze[row-1][col] == '.')
{
maze[row][col] = '.';
row = row - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'n';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row+1][col] == '#' && maze[row][col+1] == '#')
{
maze[row][col] = '.';
row = row - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'w';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row+1][col] == '.')
{
maze[row][col] = '.';
row = row + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 's';
mazeTraverse(maze,row,col,direction);
}
}
else if(direction == 'n')
{
if(maze[row][col+1] == '#' && maze[row-1][col] == '.')
{
maze[row][col] = '.';
row = row - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'n';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col+1] == '#' && maze[row-1][col] == '#' && maze[row][col-1] == '.')
{
maze[row][col] = '.';
col = col - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'w';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col+1] == '#' && maze[row-1][col] == '#')
{
maze[row][col] = '.';
row = row + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 's';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col+1] == '.')
{
maze[row][col] = '.';
col = col +1;
maze[row][col] = 'x';
cin>>enter;
direction = 'e';
mazeTraverse(maze,row,col,direction);
}
}
else if(direction == 's')
{
if(maze[row][col-1] == '#' && maze[row+1][col] == '.')
{
maze[row][col] = '.';
row = row + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 's';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col-1] == '#' && maze[row+1][col] == '#' && maze[row][col+1] == '.')
{
maze[row][col] = '.';
col = col + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'e';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col-1] == '#' && maze[row+1][col] == '#')
{
maze[row][col] = '.';
row = row - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'n';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row][col-1] == '.')
{
maze[row][col] = '.';
col = col - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'w';
mazeTraverse(maze,row,col,direction);
}
}
else if(direction == 'w')
{
if(maze[row-1][col] == '#' && maze[row][col-1] == '.')
{
maze[row][col] = '.';
col = col - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'w';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row-1][col] == '#' && maze[row][col-1] == '#' && maze[row-1][col] == '.')
{
maze[row][col] = '.';
col = col - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'n';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row-1][col] == '#' && maze[row][col-1] == '#')
{
maze[row][col] = '.';
col = col + 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'e';
mazeTraverse(maze,row,col,direction);
}
else if(maze[row-1][col] == '.')
{
maze[row][col] = '.';
row = row - 1;
maze[row][col] = 'x';
cin>>enter;
direction = 'n';
mazeTraverse(maze,row,col,direction);
}
}
}