|
|
|
Найти выход из лабиринта25.03.2014, 17:01. Показов 3817. Ответов 41
Метки нет (Все метки)
Как можно искать выход из лабиринта, который задается отрезками. То есть надо найти даже не выход, а можно ли добраться до выхода. Точка старта и финиша задаются координатами, также задаются координаты отрезков (стен) - начало и конец. Так как размеры могут быть достаточно велики, то рисовать попиксельно и искать путь не получится. Так как нужно ответить ли добраться до выхода, как это можно сделать?
0
|
|
| 25.03.2014, 17:01 | |
|
Ответы с готовыми решениями:
41
Помогите с выбором алгоритма(найти все ходы на карте лабиринта)
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 25.03.2014, 17:50 | |
|
Может разбить свободное пространство на треугольники, построить граф соседних треугольников (откуда куда можно пройти) и свести к поиску пути на графе.
1
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 25.03.2014, 20:01 | |
|
Точно так же. Если общая сторона двух треугольников является границей, то просто между ними нет пути.
Добавлено через 3 минуты Была у меня еще идея прыгать по видимым точкам границы (провести отрезок из текущей точки к предполагаемой, если отрезок не пересекается с границей то прыгнуть на точку) плюс обход по периметру. Но адекватной стратегии тут я не придумаю, кроме как полным перебором. На фоне это триангуляция выглядит более правильно.
0
|
|
|
|
|
| 25.03.2014, 20:06 | |
|
Был фильм такой "Фараон".
Так там жрецы пользовались правилом левой руки. Руку к стене и пошел, обойти можно все, но выход есть всегда. Причем, если за стеной (Вашим треугольником) что-то и есть - по барабану идем и не обращаем внимания.
1
|
|
|
|
|
| 25.03.2014, 20:09 [ТС] | |
|
wingblack, Как тогда делать триангуляцию в многоугольнике с самопересечениями? Тогда еще надо искать точки пересечения сторон или я неправильно понимаю?
Добавлено через 1 минуту Я забыл уточнить, но в задачи может быть несколько выходов и тогда надо вывести все выходы через которые можно выйти. Хотя это несущественно меняет дело.
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|||
| 25.03.2014, 20:43 | |||
|
Можно еще так сделать, менее быстро (наверное), но проще в реализации -добавить старт в список обзора -для каждой точки из списка обзора найти все видимые вершины и добавить в список обзора. -текущую точку добавить в список "не проверять" и вычеркнуть из будущих проверок. финишная точка считается достижимой если она попадала в список обзора, ну или по ней прошлись.
0
|
|||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 25.03.2014, 20:48 | |
|
для упрощения работы все же даже в таком алгоритме следует исключить пересекающиеся отрезки границы
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 25.03.2014, 20:49 | ||
|
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 25.03.2014, 20:56 | ||
|
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 25.03.2014, 21:06 | ||
|
Еще можно упростить если сначала все же удостоверится что "стены" взаимо не пересекаются, тогда можно в алгоритм добавить обход периметра, к которому данная точка принадлежит Добавлено через 3 минуты хотя тут уже проблема в выборе правильного периметра... все же пока лучше без периметра
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 25.03.2014, 21:27 | ||
|
1
|
||
|
|
||
| 26.03.2014, 13:36 [ТС] | ||
|
wingblack, Спасибо!
Когда сделаю - отпишу. Добавлено через 16 часов 6 минут Со старта мы добавим синюю точку в очередь, так как она является видимой. Когда дойдет очередь до ее рассмотрения, с этой точки, финиш будет видим, но мы не можем дойти к старту до финиша.
0
|
||
| 26.03.2014, 13:58 | |
|
С триангуляцией там долго пыль глотать. Чем не устраивает предложение OldFedor? Его только чуть оформить, напр
- соединяем текущую точку с конечной. Если не пересекаем ни один из отрезков - готово - иначе из текущей находим любую в которую можно прийти и дальше просто идем-идем-идем проходя каждый отрезок 1 раз - если какие-то доп треугольники/перекрытия, то их надо заранее учесть введя новые точки и разбив отрезки
1
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 26.03.2014, 16:12 | ||
|
Вот вам лабиринт, пробуйте с помощью него пройти его.
1
|
||
| 26.03.2014, 16:12 | |
|
Помогаю со студенческими работами здесь
20
Найти выход из лабиринта, прочертив весь путь Составить программу, которая позволяет игроку найти выход из лабиринта Выход из лабиринта
Выход из лабиринта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|