|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
|
||||||
Программа поиска пути в лабиринте21.04.2009, 19:08. Показов 6302. Ответов 32
Метки нет (Все метки)
Здравствуйте! Задали в универе написать программу на Билдере, которая бы искала путь в лабиринте. Лабиринт может задаваться как интерактивно, так и загружаться из файла. Лабиринт задается через StringGrid (можно задавать проходы 0, а стены 1). Я только начал изучение Билдера, поэтому многого не понимаю. Пока моих способностей хватило только чтобы компонентов навставлять и задавать лабиринт интерактивно. Вот моё начало, может кто дальше поможет:
0
|
||||||
| 21.04.2009, 19:08 | |
|
Ответы с готовыми решениями:
32
Алгоритм поиска пути A* Алгоритм Кегелеса-Рауера для поиска кратчайшего пути Написать теорию для алгоритма нахождения пути в лабиринте |
|
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,975
|
|
| 21.04.2009, 20:28 | |
|
Если вход и выход из лабиринта находится по периметру (не внутри - аля телепорт), то можно идти по любой стене и когда-нибудь придешь к выходу. Т.е. условно хватаешься левой рукой за стену и идешь не отпуская ее.
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
|
|||||||||||
| 22.04.2009, 15:20 [ТС] | |||||||||||
|
А почему мне например Билдер не позволяет написать следующее:
0
|
|||||||||||
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
| 22.04.2009, 15:40 | |
|
Хз поможет ли опишу возможный алгоритм... карочь представь себе матрицу Н*М(число к) елементов. Пусть значение ячеек: 0-стена, 1-проход, 2-начало откуда пойдем, Н*М-конечный пункт. Например мы рандомно задали стены/проходы и получили некую матрицу:
01010 01001 10100 01010 10101 терь зададим начало и конец, получим: 21010 01001 10100 01010 10к01 терь тыцаем найтить путь, оно ищет путь по принцыпу "а куда мне можно пойтить?" туда куда можно пишем значение "3" получим после первого перерисова: 23010 03001 10100 01010 10к01 терь цыклим до победной с точки 3 к "к" с шагом +1 получим: 23010 03001 40400 05050 60к06 Надо бы теперь ввести такое что бы следующий шаг при натолкнении на меньшый результат и невозможности куда-то пойти стирал себя: 2*010 03001 40400 05050 *0к0* Итог рисуем путь от 2 к "к": 2*010 0-001 -0-00 0-0-0 *0к0* ето есть волновой алгоритм поиска пути... в простом виде)
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
|
|
| 23.04.2009, 22:20 [ТС] | |
|
А зачем? У меня же в циклах for указано, что i и j являются int.
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
|
|
| 25.04.2009, 20:25 [ТС] | |
|
Он пишет, что неизвестный символ THEN и что он ожидает точку с запятой в этом месте (ну то есть где then написано)
0
|
|
|
43 / 39 / 12
Регистрация: 05.01.2009
Сообщений: 394
|
|
| 25.04.2009, 21:28 | |
|
then - нету в c++ такого ключевого слова
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
|
||
| 27.04.2009, 23:01 [ТС] | ||
|
0
|
||
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
| 29.04.2009, 09:47 | |
|
вот она! и заметте далеко идти не надо) Клеточная карта
0
|
|
|
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
|
|
| 27.01.2010, 14:01 | |
|
Надо поднять тему. На форуме еще нет решения лабиринта(
0
|
|
|
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
|
|
| 27.01.2010, 15:12 | |
|
Не, сейчас актуален волновой алгоритм.(Алгоритм Ли)
0
|
|
|
6 / 6 / 0
Регистрация: 31.12.2009
Сообщений: 132
|
||||||
| 27.01.2010, 17:18 | ||||||
|
ловіть))))))))))))))))))))))))
//---------------------------------------------------------------------------
путь задается 1ми =)))))))))))) table - StringGrid Добавлено через 27 секунд Рекурсия - это вещь))))))))
0
|
||||||
|
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
|
|
| 27.01.2010, 19:15 | |
|
А слабо сделать без формы? т.е. в консоли к примеру, 1- стены, 0 путь, 2 начальная точка,3 конечная, я в свое время делал) тока кода нет(
0
|
|
|
6 / 6 / 0
Регистрация: 31.12.2009
Сообщений: 132
|
|
| 27.01.2010, 19:32 | |
|
в чем проблемма????
вместо стрынггрида - масив int table[][]; у меня начало лабиринту в [0][0], конец в правом нижнем углу, если кто не понял.. у меня такое впечетление что ты BOR1K вообще не писал такую программу, так как твой вопрос - свидетельствует об этом!!!! "а без формы слабо" - БУГАГА)
0
|
|
|
|
|
| 27.01.2010, 20:19 | |
|
22dr22, скорее всего он имел в виду то, что твою программу без доработки напильником не запустить. Вот когда можно взять код и тупо его скомпилять - это одно. А когда надо плясать с бубном и разбираться, как твою программу повторить у себя - другое. Лично меня совершенно ломает что-то делать с твоей программой
0
|
|
|
6 / 6 / 0
Регистрация: 31.12.2009
Сообщений: 132
|
|
| 27.01.2010, 20:26 | |
|
=))))))
find - ф-я поиск просит матрицу(лабиринт) координати начала и конца =)))) код то мелкий, 1,5 экрана =)))) да ты прав надо было спросить ТЗ - написать и скинуть проэкт за спасибо =))))) я кинул пример - тот кому нужен - поймет и свой напишет, а для халявщиков я делать не буду =))))
0
|
|
| 27.01.2010, 20:26 | |
|
Помогаю со студенческими работами здесь
20
Алгоритм поиска пути в лабиринте алгоритм поиска кротчайшего пути в лабиринте Реализация волнового алгоритма поиска пути в лабиринте Разработать программу для поиска пути в лабиринте Алгоритм поиска пути в лабиринте, заданном связным графом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|