@Override
	public Iterator<MazeMove> getMoves()
	{
		List<MazeMove> moves = new ArrayList<MazeMove>();
		
		for (byte i = 0; i < type.direction; i++)
		{
			int[] p = DIRS[i];
			int dx = x + p[0];
			int dy = y + p[1];
			
			if (type.free( dx, dy ))
			{
				moves.add( new MazeMove( i ) );
			}
		}
		
		return moves.iterator();
	}