00001 #pragma once 00002 00003 #include <utility> 00004 #include <set> 00005 00006 #define MazeMaxSize 30 00007 #define MazeMinSize 5 00008 00009 using namespace std; 00010 00011 class Maze 00012 { 00013 private: 00014 int maze[MazeMaxSize][MazeMaxSize]; 00015 set< pair<int,int> > exits; 00016 pair<int,int> dimensions; 00017 00018 void ClearMaze(void); 00019 void GenerateWalls(pair<int,int> submazeDim, pair<int,int> submazeStartXY); 00020 void CreateExits(); 00021 00022 public: 00023 Maze(void); 00024 00025 void SaveMazeToFile(string filename, pair<int,int> startingCoords, int direction); 00026 void GenerateMaze(pair<int,int> submazeDim); 00027 bool IsExit(pair<int,int> position); 00028 bool IsThereWallAhead(pair<int,int> position, int direction); 00029 00030 int GetWidth(void); 00031 int GetHeight(void); 00032 00033 double FindMetric(pair<int,int> position); 00034 00035 ~Maze(void); 00036 }; 00037