|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||||||
Лабиринт из массива09.10.2008, 23:40. Показов 8096. Ответов 11
Метки нет (Все метки)
Вот есть такая задача:
Мне просто нужно допридумывать идею, проверку в начале, ну и ещё придумать что-бы это "начальная" проверка не мешала основной работе функции, т.к. мне надо через рекурсию писать, а это означает что придётся заново вызывать эту же функцию...Если у вас появились идеи отпишитесь плз, а то мне всё больше начинает казатся, что "правило правой(левой) руки" здесь плохо применимо и есть что-то ещё, попроще, а может быть и посложнее...
0
|
||||||
| 09.10.2008, 23:40 | |
|
Ответы с готовыми решениями:
11
Игра лабиринт. ИИ в лабиринте. Как задать лабиринт Лабиринт 3D лабиринт |
|
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 18
|
||||||
| 10.10.2008, 00:16 | ||||||
|
Это недоделаная программа подобного типа.
Сдесь стены лабиринта = 1 а проход 0 (как у тя ток наоборот )посмотри код сам, я спать ппц хочу. Программа не работает так как я ее не доделал. Но функции передвежения (Move) и проверки местоположения (Chek (не финишь ли это)) написаны вроде правильно ![]()
0
|
||||||
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||
| 10.10.2008, 00:22 [ТС] | ||
|
Ну у меня как-бы и есть стены "1", а проход "0", ну и во 2-ых, я тока недавно начал изучать языки программирования и в C++ не шарю, да и как я вижу, у тебя проверки как-то не так проходят...у меня тут появилась мысль насчёт того что делать с
0
|
||
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||||||
| 12.10.2008, 22:32 [ТС] | ||||||
|
Помогите закончить...
0
|
||||||
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|||||||||||
| 12.10.2008, 23:20 | |||||||||||
|
Неправильно выход из рекурсии. Надо так:
0
|
|||||||||||
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
| 12.10.2008, 23:28 [ТС] | |
|
Спасибо за советы, но прога всё равно не работает, у меня иссякли мысли...
0
|
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 13.10.2008, 07:42 | |
|
Сейчас потестировал программу, дело в том что она работает при n=m и при m>n. Когда столбцов больше чем строк, не работает. Проверьте сами, Вы скорее найдете ошибку. На всякий случай моя программа, которая на 2/3 работает.
0
|
|
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
| 14.10.2008, 03:44 [ТС] | |
|
Хотел бы вас поправить немного, программа не работает, когда происходят определённые повороты в лабиринте, все их описывать не вижу смысла, просто их не так много, сейчас переделываю программу полностью, уменьшая объём и дорабатывая её на ходу, надеюсь сегодня к утру, может быть завтра к вечеру закончу...
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 6
|
||
| 23.10.2008, 20:28 | ||
|
Мне такую же задачу дали. Можете помочь с кодом и алгоритмом. написать нужно на С. Я новичок. Спасибо!
0
|
||
|
10 / 10 / 2
Регистрация: 18.08.2008
Сообщений: 127
|
|
| 25.10.2008, 20:05 | |
|
по борабану на каком языке писать .
надо составить новмальный алгоритм програму и все буде пучком. 1) 1- стена ; 0 - проход : 2- обрамляющая рамка лабиринта если при анализе вылезит 2 - то это конец лабиринта- выход 2) анализировать надо не по правилу рук а про правилу часов сначала свободна ли верхняя клетка . если не то правая ... нижняя левая . разумется там надо учитывать был ли ты раньше в этой клетке .
0
|
|
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||||||
| 25.10.2008, 20:29 [ТС] | ||||||
|
Не полностью согласен, т.к. а если мы попали на перекрёсток?Ну что-то типа токого
0
|
||||||
|
10 / 10 / 2
Регистрация: 18.08.2008
Сообщений: 127
|
|
| 26.10.2008, 20:51 | |
|
не совсем !
первое что надо учитывать это вход на перекресток. черепашка может двигаться в четырех направлениях вверх , вправо , влево и вниз. Так пусть есть переменная Dv (движение)и X,Y позиции. Dv будет равнo в зависимости от направления 1,2,3,4. Теперь надо найти верное следующее направление Dv2. Возможных вариантов тоже будет 4 . нельзя не учитывать движение обратно . Там может быть карман ( апендекс). вычислять это движение разумеется тоже в определенном порядке . если Dv=1 то Dv2= 2,3,4,1 Dv=2 то Dv2= 3,4,1.2 Dv=3 то Dv2= 4,1,2,3 Dv=4 то Dv2= 1,2,3,4 естественно что бы облегчить код и анализ лучше ввести X1 и Y1 аналитические приращения которые будут равны при Dv2=1 X1=0 Y1=-1 Dv2=1 X1=0 Y1=-1 Dv2=2 X1=1 Y1=0 Dv2=3 X1=0 Y1=1 Dv2=4 X1=-1 Y1=0 Теперь можно легко вычислить нужную клетку то есть найти клетку равную 0 свободную в поле М спросив М(X+X1,Y+Y2) если она равна нулю то сделать движение Dv=Dv2; X=X+X1;Y=Y+Y1 если это вход (=2) или выход(=3) то соответственно сделать выход из программы если (=1) то это стенка Увеличить Dv2 на единицу .если Dv2=5 то сделать =1 кстати четвертое приращение Dv2 заставить черешку пятиться , а обратный ход свободен . Если же вы решили отмечать трассу(значением 4),то при анализе хода считать ,что это 0. Еще данный алгоритм работает при ширине туннеля 1 или 2 .Еще шире не ручаюсь за результат . Так как алгоритм анализирует соседние клетки (а они должны быть). то поле должно быть окружено границей из 1 или программно их поставив расширив размеры исходного поля на 2 .
0
|
|
| 26.10.2008, 20:51 | |
|
Помогаю со студенческими работами здесь
12
Лабиринт Лабиринт Лабиринт с++ лабиринт Лабиринт C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|