public Iterator<Field> getGreedy(Field f) {
		PriorityQueue<Field> greedy = new PriorityQueue<>(8);
		
		this.updateBoard(f.x, f.y, false);
		
		//add next fields
		for(int i = 0; i < springer.length;i+=2)
		{
			int newX = f.x+ springer[i]; //x position of next jump point
			int newY = f.y+ springer[i+1];
			
			if(fieldAvailable(newX,newY)) 
				greedy.add(new Field(newX,newY,b[newX][newY]));
		}
		
		/* if greedy contains 0, then this should be the only available jump point. 
		 * if it is the last field not visited, everything is fine. If not then we should backtrack. 
		 * Otherwise we would keep on searching for a solution that isn't there.
		 */
		Field tmp = greedy.peek();
		if(tmp != null && tmp.possibilities == 0)
		{
			greedy.clear();
			greedy.add(tmp);
		}
		
		return greedy.iterator();
	}