Консультация № 183185
16.05.2011, 14:58
43.78 руб.
0 8 1
Здравствуйте, уважаемые эксперты! Прошу вас
1. Написать программу.
Дана карта клетчатых ячеек, на которой есть исходная ячейка A, конечная ячейка B и некоторое количество запретных ячеек {Ci}. Есть робот, который может перемещаться из клетки в клетку, но не может попасть на клетки {Ci}. Требуется составить программу управления роботом, который должен переместиться из клетки A в клетку B.
Переход между ячейками осуществляется либо через сторону клетки, либо через вершину, но запрещен переход через вершину, если этой вершины касается одна из запретных клеток {Ci}
Управляющая программа заранее имеет сведения о расположении и количестве клеток {Ci}
Цель управления: добраться из клетки A в клетку B за меньшее время.
Инструменты: Turbo-/ABC-Pascal, Delphi-7/CodeGear, qBasic, VBA, C/C++ без STL
2. Убедительно доказать (или привести ссылку на доказательство) то, что время минимально
Срок исполнения: 20 мая. Цена будет согласована с автором ответа.
Если кто-то готов взяться, дайте, пожалуйста, знать в мини-форум или в личную почту.
Спасибо.

Обсуждение

давно
Профессионал
304622
583
16.05.2011, 23:13
общий
Адресаты:
Вроде бы решается разветвлённой рекурсией.

Там красивого вывода на экран, наверно, не требуется?
давно
Мастер-Эксперт
425
4118
17.05.2011, 04:57
общий
Адресаты:
Цитата: Сергей Бендер
Там красивого вывода на экран, наверно, не требуется?

Как минимум, экран должен быть поделён на клетки, с обозначением запретных и конечных-начальных. А так же изобразить робота и его путь. Робота можно изобразить условно, но чтобы сразу было понятно, что это робот.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Академик
320937
2216
17.05.2011, 05:12
общий
Адресаты:
Добрый день! Если есть программа без красивого вывода - давайте. С уважением.
давно
Профессионал
304622
583
17.05.2011, 20:53
общий
Адресаты:
Программы нет. Есть в голове некое представление, какая должна быть (рекурсия). Попробую.

Только можно я не буду роботов рисовать? В StringGrid'е раскидаю буквы 'A', 'B' и 'X'?
давно
Академик
320937
2216
17.05.2011, 21:00
общий
Адресаты:
Добрый вечер! Нормально, пойдет. Есть программа в Турбо-Pascal "Волновой алгоритм" /* Автор: Зенченко Константи Николаевич */ в вопросе в рассылке "Алгоритмы". Если перепишете под визуальную среду и обработаете переход по диагонали - вообще будет отлично.
С уважением
давно
Профессионал
304622
583
19.05.2011, 04:28
общий
это ответ
Здравствуйте, lamed!

Вот что получилось.
Робот
Время позднее, комментарии напишу потом (если надо).
давно
Академик
320937
2216
21.05.2011, 17:59
общий
22.05.2011, 22:57
Адресаты:
Добрый день, Сергей! Возможна ли такая доработка?
1) можно ли сделать чтобы задавалась размерность n*m (не квадратная
карта)?
2) при растягивании окна область карты не растягивается внутри окна,
образуются пустые поля (видно на скрине) - можно ли сделать чтобы
область карты растягивалась вместе с окном.

Пункт 1 желателен, пункт 2 - если не сложно.


С уважением
PS В суете не заметил, как вопрос закрылся, не оценил: "Отлично!"
давно
Академик
320937
2216
22.05.2011, 22:58
общий
Адресаты:
Добрый вечер, Сергей! Спасибо.
Форма ответа