public void createWithDFS(){	//Uses DFS to explore a default labyrinth and creates a solvable labyrinth

        MazeCell current = getStartCell(),neighbor;
        int visitedCells = 1,TotalCells = size();
		ResetVisits();
		current.visit();

		if(theStack.isEmpty() == false){ 
			System.out.println("Stack must be emptied before running algorithm");
			do{
				theStack.pop();
			}while(theStack.isEmpty() == false);
		}

		System.out.println("Alright let's create a labyrinth using DFS!");
		while(visitedCells < TotalCells){
			System.out.printf("Visited: %d\n",visitedCells);
			System.out.print("Current cell is ");
			current.printCoordinates();
			printMyLabyrinth(current);
			if(current == getEndCell())
				System.out.println("We have successfully created a path to the desired End Cell :D");
			neighbor = current.anyIntactNeighbor(current.getNeighbors());
			if(neighbor != null){ //Exei geitones p dn exoume paei pote (gt eixan shkwmeno teixo)
				theStack.push(current);
				current = neighbor;
				current.visit();
				visitedCells++;
			}
			else
				if(theStack.isEmpty() == false){
					current = theStack.pop();
					System.out.println("Backtracking...");
				}	
		}
    }