Я пытаюсь найти кратчайший путь, окружающий мозаичный, связанный регион.
Пока что я залил подключенную область, которую я пытаюсь окружить, и создал путь, граничащий с ней (поэтому все плитки пути непосредственно примыкают к подключенной области).То, что я хочу сделать сейчас, это как натянуть резинку вокруг соединенной области и выбрать путь, по которому она идет;Я хочу избежать проникновения в вогнутости региона.Например, если у меня есть: (. = Пустое пространство, w = стена, o = путь
........
.ww...w.
.w...ww.
.ww..ww.
.wwwwww.
........
Мой текущий путь будет выглядеть так:
.oo...o.
owwo.owo
owo.owwo
owwoowwo
owwwwwwo
.oooooo.
Но я бы хотелизбегайте центральной области, поскольку это удлиняет мой путь, и вместо этого выбирайте путь:
.oooooo.
oww...wo
ow...wwo
oww..wwo
owwwwwwo
.oooooo.
Есть ли эффективный способ сделать что-то подобное? Спасибо.