![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.08.2014
Сообщений: 15
|
![]()
Всем,добрый вечер)
Прошу,помогите разобраться с волновым алгоритмом.Сам принцип мне вроде ясен.Но вот нашла пример задачи и не могу в нем разобраться) Задача: «Однажды Джеку Воробью принесли весть, что на одном из Карибских островов спрятан клад. Клад этот спрятан в пещере и путь к нему подобен лабиринту. Пирату удалось выкрасть карту лабиринта. И вот, отважный пират отправился на поиски клада. Продвигаясь по лабиринту, он заплутал. Волшебный компас показал координаты его расположения и координаты места, где расположен клад. Помоги Джеку отыскать клад». Решение: требуется написать программу, которая по заданному описанию лабиринта и указанию начальных и конечных координат путника напечатает возможный кратчайший путь к кладу. Формат входных данных: Первая строка содержит размерность лабиринта, а именно М – число строк в описании лабиринта, и N – число столбцов (M, N <15). Далее вводится числовая матрица MxN, содержащая описание лабиринта, где стены отмечены 1, а проходы - 0. Затем вводятся координаты Джека Воробья (номер строки и столбца (XS, YS), где он находится в текущий момент) и координаты, где расположен клад (XF, YF). Формат выходных данных: Найти ближайший путь к кладу и напечатать описание лабиринта вместе с намеченным путем. Начало пути пометить цифрой 2. В местах, где пролегает путь, выставить цифру 3, а в месте клада – 4. Вывести длину пути. Вот решение этой задачи ![]() Код:
и не совсем понятен принцип работы обратной волны.Заранее спасибо за любую помощь. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]()
В Masm хранится волна. "Обратная волна" - для клетки с кладом с номером K нужно найти прилегающую клетку с номером K - 1 и перейти в неё, продолжать, пока не дойдем до места старта.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.08.2014
Сообщений: 15
|
![]()
Зачем мы обозначаем координаты воробья за 1 MasM[XS, YS] := 1.
если у нас по уловию 1 - это стена? |
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]()
Это обозначение никак не связано с условием. Элементы каждого уровня волны имеют свой порядковый номер. Для лучшего понимания нарисуйте простенький лабиринт на листочке (стенки - закрашенные клетки). Затем поставьте в любую клетку единичку и от неё начните распространять волну, нумеруя клетки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
кстати, очень рекомендую, ссылочку, приведенную ниже.
Там можно посмотреть наглядно, как работают разные алгоритмы поиска пути. Визуализация поиска пути разными алгоритмами p.s. всё на английском... |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 24.08.2014
Сообщений: 15
|
![]()
спасибо за ссылку))
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Волновой алгоритм! | flaminger | Помощь студентам | 4 | 05.05.2013 13:04 |
Волновой алгоритм | zokwild | Помощь студентам | 1 | 28.11.2012 23:47 |
волновой алгоритм Delphi | The Catalyst | Помощь студентам | 3 | 01.12.2011 12:32 |
Волновой алгоритм поиска | Merkator | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 8 | 12.02.2009 16:15 |