Сергей Захаров
Гуру
(3802)
14 лет назад
Следует загрузить карту лабиринта в память робота, на той карте должна быть обозначена точка. Иначе придется писать искусственный интеллект, который будет тупо кататься и искать. Кстати, на счет тупо искать. Пусть он у тебя пройденный путь запоминает, заставь его считать пройденное расстояние, угол поворота и прочее, чтобы все это записывалось в память и на этой основе строилась карта пройденного пути, так исключишь прохождение одного и того же пути без надобности. А алгоритм немного не будет работать я так думаю...
КонстантинГуру (3153)
14 лет назад
Хорошо допустим карта в робота загружена, а как по карте проложить путь в автоматическом режиме?
Jurijus Zaksas
Искусственный Интеллект
(475682)
14 лет назад
Робот не должен стремиться к цели.
Робот должен обходить лабиринт по правилу правой либо левой руки (с определением циклов, если лабиринт предусматривает их наличие) , пока не достигнет цели или не обойдет весь лабиринт (цель недоступна с текущей позиции) .
Алгоритмы, учитывающие местоположение цели, очень сложны и в общем случае не гарантируют успеха.
Мужик С Веслом
Оракул
(84645)
14 лет назад
Самый простой алгоритм - рекурсивный обход лабиринта до достижения нужной точки.
Примерно так:
Процедура "обход":
- Если искомая точка достигнута - конец.
- Отметить точку, где стоим.
- Если можно идти вправо и точка справа не отмечена, то идти вправо и выполнить "обход". Вернуться влево.
- Если можно идти влево и точка слква не отмечена, то идти влево и выполнить "обход". Вернуться вправо.
- Аналогично для направлений верх и низ.
Все.
Начало алгоритма выглядит так:
если цель ниже и снизу нет стены то сделать шаг вниз
иначе
если цель правее и справа нет стены то сделать шаг вправо
иначе