public TermQ QueueAlgoPath(Level [] maze , TermQ startPoint)
	{
		creatBooleanMap(startPoint,maze[startPoint.level].getLevel());
		path.enqueue(startPoint);
		boolean found =false;
		TermQ wanted =null;
		while(!path.isEmpty() && !found )
		{
			TermQ currentPoint = (TermQ) path.dequeue();
			char[][]map =maze[currentPoint.level].getLevel();
			byte checkCharacterType = checkPositionChar(map,currentPoint);
			if(checkCharacterType==1)
			{
				found =true;
				System.out.println("Winner Reach the target");
				wanted =currentPoint;
			}
			else 
			{
				if(validation[currentPoint.level]==null)
				{
					creatBooleanMap(currentPoint, map);
				}
				byte[]limites = getTheLimites(map.length, currentPoint.positionI, currentPoint.positionJ);
				enqueueFreeElements(validation[currentPoint.level], limites, currentPoint);
				if(checkCharacterType==0)
				{
					int nextLevel =Integer.parseInt(""+map[currentPoint.positionI][currentPoint.positionJ]);
					try
					{
						String[] stairs=maze[nextLevel].getStairs();
						String positions=stairs[currentPoint.level];
						int posI=Integer.parseInt(positions.substring(0,positions.indexOf(' ')));
						int posJ=Integer.parseInt(positions.substring(positions.indexOf(' ')+1,positions.length()));
						TermQ newTerm = new TermQ (posI , posJ);
						newTerm.setParent(currentPoint);
						newTerm.setLevel(nextLevel);
						path.enqueue(newTerm);
					}
					catch(Exception e)
					{
						
					}
				}
			}
		}
		return wanted;
	}