Exemple #1
0
int main(){
	Maze maze;
	maze.ReadMaze(MAZE_FILE);
	MazeSolver* solver = new MazeSolver(maze);
	solver->solve();
	vector<int> pathX = solver->getPathX();
	vector<int> pathY = solver->getPathY();
	cout << maze << endl;
	cout << "The path taken:" << endl;
	for (int i = pathX.size() - 1; i <= 0; i--){
		cout << pathX[i] << "," << pathY[i] << endl;
	}
}
int main(){
	Maze M;
	M.ReadMaze(MAZE_FILE);
	cout<<"This is the maze."<<endl;
	cout << M;
	M.getStart();
	int x, y;
	M.getCurrentLocation(x,y);
	cout<<"Get started! Now you are @ ("<<x<<","<<y<<")"<<endl;

	cout << M;


	char s;
	while(!M.isFinish())
	{
		cout<<"Please select a direction to travel from the following - N, S, W or E:  ";
		cin>>s;
		while(!(s=='N'||s=='n'||s=='W'||s=='w'||s=='E'||s=='e'||s=='S'||s=='s'))
		{
			cout<<"Invalid input! Please input again!";
			cin>>s;
		}

		if(s=='N'||s=='n')
		{
			if(M.north())
			{
				M.getCurrentLocation(x,y);
				cout<<"March north! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
			else
			{
				M.getCurrentLocation(x,y);
				cout<<"Could not move in that direction! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
		}
		if(s=='E'||s=='e')
		{
			if(M.east())
			{
				M.getCurrentLocation(x,y);
				cout<<"March east! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
			else
			{
				M.getCurrentLocation(x,y);
				cout<<"Could not move in that direction! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
		}
		if(s=='W'||s=='w')
		{
			if(M.west())
			{
				M.getCurrentLocation(x,y);
				cout<<"March west! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
			else
			{
				M.getCurrentLocation(x,y);
				cout<<"Could not move in that direction! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
		}
		if(s=='S'||s=='s')
		{
			if(M.south())
			{
				M.getCurrentLocation(x,y);
				cout<<"March south! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
			else
			{
				M.getCurrentLocation(x,y);
				cout<<"Could not move in that direction! Now you are @ ("<<x<<","<<y<<")"<<endl;
				cout << M;
			}
		}
	}
	cout<<"Congratulations - destination reached!"<<endl;
	return 0;
}