![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
arsen86 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вообщем , задали другу курсач, я нашел что-то похожее в инете и начал модернизировать, домодернизировался, что что-то уже не так работает.
Лабиринт берется из файла, состоит из " " - проход, "*" - стена, я сначала загоняю его в числовой массив, в числовом ищу путь, а потом как результат должен выводится лабиринт , а правильный путь обозначатся точками. То что я наделал ![]() Ниже будет файл данных лабиринта. Прикрепленные файлы ![]() |
arsen86 |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот файл с данными
Прикрепленные файлы |
Флогримм |
![]() ![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: ![]() ![]() ![]() |
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 Прикрепленные файлы ![]() -------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
arsen86 |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо Флогримм, и всем кто смотрел но не написал ).
Я разобрался, кому интересно, скажу, что там была ошибка передачи параметров в процедуру Next. Вместо Next(x,y), нужно было написать Next(y,x). Теперь осталось немного: сделать еще и ручной режим работы, в котором оператор с помощью клавиш управления сам ищет путь к выходу. Кому интересно, пишите, как доделаю, могу выслать на мыло. |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 15:20 |