public void exploreSolution(){
		if (isAnExit(current_cell)){
			Solution sol = new Solution();
			for(Cell c : this.current_solution){
				sol.add(c);
			}
			this.solutions_list.add(sol);
		}else{			
			for (int i = 0 ; i < 4 ; i ++){
				int newx = this.current_cell.getX() + this.directions[i].getX();
				int newy = this.current_cell.getY() + this.directions[i].getY();	
				if (newx >= 0 && newx < this.size && newy >= 0 && newy < this.size){
					if (this.labyrinth[newy][newx]){
						if (!this.current_solution.contains(new Cell(newx,newy))){
							this.current_cell = new Cell(newx,newy);
							this.current_solution.add(new Cell(newx, newy));
							this.exploreSolution();
							this.current_solution.remove(this.current_solution.size()-1);
							this.current_cell = this.current_solution.get(this.current_solution.size()-1); 
						}
					}
				}
			}
		}
	}