#ifndef __MAZE_H__
#define __MAZE_H__

#include "MazeInterface.h"
#include <string>
#include <fstream>
#include <streambuf>
#include <iostream>
#include <vector>

using namespace std;

class maze : public MazeInterface {
    public:
        maze();
        stringstream path;
        vector<string> ordered_pairs;
        vector<vector<vector<int>>> map;
        void createRandomMaze();
        bool solve(int x,int y,int z); 
        bool importMaze(string fileName);
        bool traverseMaze();
        string getMazePath();
        string getMaze();
        friend ostream & operator<<(ostream & os, maze & m);
};
ostream & operator<<(ostream & os, vector<vector<vector<int>>> & f) ;
#endif
