/// <summary>
        /// InitializeMaze initialises a new Maze, creating a new disjointed set, random
        /// generator, and extended graph.
        /// </summary>
        public void InitializeMaze()
        {
            maxSquares = maxRows * maxColumns;

            //initialise the disjointSet
            disjointSet = new DisjointSets(maxSquares);
            //initialise the random number generator
            random = new Random();
            //initialise the graph
            extendedGraph = new ExtendedGraph <int>();
        }
        /// <summary>
        /// The constructor for MazeLogic.
        /// </summary>
        public MazeLogic()
        {
            maxRows    = 20;
            maxColumns = 20;
            maxSquares = maxRows * maxColumns;

            //int adjRow = gridSize/maxRows;
            //int adjCol = gridSize/maxColumns;
            //adjustedSquareSize = (adjRow < adjCol ? adjRow : adjCol);
            //rowOffset = (gridSize-maxRows*adjustedSquareSize)/2 + 2;
            //columnOffset = (gridSize-maxColumns*adjustedSquareSize)/2 + 2;

            //initialise the disjointSet
            disjointSet = new DisjointSets(maxSquares);
            //initialise the random number generator
            random = new Random();
            //initialise the graph
            extendedGraph = new ExtendedGraph <int>();
        }