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

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

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

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


Новичок
*

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

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


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

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

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


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


Новичок
*

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

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


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


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


Бывалый
***

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

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


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

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

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

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

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


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


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


Новичок
*

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

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


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

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

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

 



- Текстовая версия 20.06.2025 15:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"