IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Поиск пути в лабиринте, посмотрите, что-то не так работает
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Вообщем , задали другу курсач, я нашел что-то похожее в инете и начал модернизировать, домодернизировался, что что-то уже не так работает.

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

То что я наделал smile.gif в файле.
Ниже будет файл данных лабиринта.


Прикрепленные файлы
Прикрепленный файл  Voln1.pas ( 3.88 килобайт ) Кол-во скачиваний: 385
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Вот файл с данными


Прикрепленные файлы
Прикрепленный файл  W.dat ( 1.81 килобайт ) Кол-во скачиваний: 4
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 253
Пол: Мужской

Репутация: -  4  +


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

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

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

я давно тоже решал такую задачку(только без перевода из символьного массива), вот:

Сообщение отредактировано: Флогримм -


Прикрепленные файлы
Прикрепленный файл  LABIRINT.rar ( 1.12 килобайт ) Кол-во скачиваний: 308


--------------------
Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


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

Теперь осталось немного: сделать еще и ручной режим работы, в котором оператор с помощью клавиш управления сам ищет путь к выходу.
Кому интересно, пишите, как доделаю, могу выслать на мыло.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 14.06.2024 18:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name