хм... похоже надо строить двухмерный массив булевый(1-доступная територия,0 недоступная,), и искать перебором клетки которые граничат с нулями, определять количество соседних нулей и направления SNWE,
общий цикл из всех клеток, и цикл перебора соседей в нем.
и уже из результата рисовать границы
либо сплайном, либо плейнами с "картой" текстр на каждый квадратик где в карте текстур будут все варианты возможные окраски. Олдскул в общем.
Возможно можно как-то проще, нужно поискать в сети материал на эту тему. И поискать оптимальные алгоритмы тоже стоит.
_________________
we need to go deeper