Помощь - Поиск - Пользователи - Календарь
Полная версия: Поиск пути в лабиринте
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
arsen86
Вообщем , задали другу курсач, я нашел что-то похожее в инете и начал модернизировать, домодернизировался, что что-то уже не так работает.

Лабиринт берется из файла, состоит из " " - проход, "*" - стена, я сначала загоняю его в числовой массив, в числовом ищу путь, а потом как результат должен выводится лабиринт , а правильный путь обозначатся точками.

То что я наделал smile.gif в файле.
Ниже будет файл данных лабиринта.
arsen86
Вот файл с данными
Флогримм
arsen86, в коде твоем я запутался, но принцип довольно-таки прост
ты правилно переводишь символьный лабиринт в числовой, а вот дальше ошибка какая-то
смотри, что делать дальше:
запрашиваешь у пользователя начальное и конечное значение пути, затем начальной ячейке присваиваешь значение 2, потом сканируешь матрицу и если у какой-то ячейки есть соседняя ячейка содержащая значение 2, присваиваешь текущей значение 2+1, затем снова сканируешь митрицу, если у текущей ячейки соседка 3, присваиваешь текущей значение 3+1 и т.д. я думаю суть понял

как найти наикратчайший путь: начиная от конечной ячейки ишещь среди ее соседей ячейку со значением на 1 меньше, помечаешь(напр. -1) и т.д. потом переводишь в символьный массив

также посмотри http://forum.pascal.net.ru/index.php?showtopic=3041

я давно тоже решал такую задачку(только без перевода из символьного массива), вот:
arsen86
Спасибо Флогримм, и всем кто смотрел но не написал ).
Я разобрался, кому интересно, скажу, что там была ошибка передачи параметров в процедуру Next. Вместо Next(x,y), нужно было написать
Next(y,x).

Теперь осталось немного: сделать еще и ручной режим работы, в котором оператор с помощью клавиш управления сам ищет путь к выходу.
Кому интересно, пишите, как доделаю, могу выслать на мыло.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.