All pastes #162156 Raw Edit

Something

public text v1 · immutable
·published 2006-09-06 05:06 UTC
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);
		}
	}
}