Если планы уровней точно такие же по содержанию, как приведенная картинка (т.е. связные, не содержат диагональных поворотов и нет других скрытых условий), то алгоритм поиска пути:
1) тыкаем в случайную точку, ее цвет — желтый, добавляем ее к области Желтая1
2) ищем в окрестности точку желтого цвета, если найдены 1 или 2 новых точки (еще не записанных в Желтая) — цикл далее повторяем с ними, ищем следующие окрестные точки
3) прекращаем поиск Желтых, когда достигнуты оба конца Желтой области
4) тыкаем новую случайную точку, ее цвет Красный — повторяем с 1)
5) когда все клетки поля оказались в наборах Желтая1, Желтая2, Красная1 итд — стоп.
Также можно почитать про
ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_A* и другие алгоритмы поиска пути
ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D1%83%D1%82%D0%B8
Генерация уровня — берем случайный цвет Синий, случайно определяем его первую точку, добавляем ее в Синий1, далее случайно определяем шаг — по горизонтали или вертикали, добавляем каждую новую Синюю точку в Синий1 + в использованные, на каждом шаге случайно решаем — завершить цвет Синий или перейти к Красному. Повторяем — пока все поле не будет в использованных. Получаем похожий уровень.