Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 12:32   #1
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
Восклицание Создать программу, отыскивающую проход по лабиринту!!!

Создать программу, отыскивающую проход по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квадрат определяется его координатами в матрице. Программа находит проход через лабиринт, двигаясь от заданного входа. После отыскания прохода программа выводит найденный путь в виде координат квадратов. Для хранения пути использовать стек.

Делать нужно примерно так...
Взять первую точку-вход в лабиринт(допустим нижняя левая) и осмотреть ее окрестность(вверх и вправо), найти открытый квадрат и положить точку входа в стек . дальше смотреть окрестности текущей точки если они закрыты, то вытаскивать предыдущую из стека и смотреть на открытость/закрытость оставшихся сторон окрестности. надо также принять от куда начать проверку окрестности, например с нижней точки и проверять по часовой. в стек нужно так же с точкой класть и направление по которому пошли, что бы не было зацикливания. и необходимо учитывать границы лабиринта.

Я к сожалению не могу это реализовать...
помогите пожалуйста
Protected_fat вне форума Ответить с цитированием
Старый 06.07.2011, 12:33   #2
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
Восклицание

Написать программу надо на си или хотя бы c++ ...
Protected_fat вне форума Ответить с цитированием
Старый 06.07.2011, 12:56   #3
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

"Лабиринт представляется в виде матрицы, состоящей из квадратов"

Можете показать как это в C задаётся?
l1pton17 вне форума Ответить с цитированием
Старый 06.07.2011, 13:02   #4
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
Сообщение

ну матрицу можно считывать из файла, а в файле должно быть что-то вроде этого
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 0 1 0 0 0 1 1
1 1 1 0 0 0 1 0 1 1
1 0 1 1 1 0 0 0 1 1
1 0 0 0 0 0 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
По единичкам ходить можно, а нолики - это стена.
Нужно задать начало и конец...и найти путь...
Protected_fat вне форума Ответить с цитированием
Старый 06.07.2011, 13:20   #5
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

Вот кто-то точно такое же задание обсуждал
l1pton17 вне форума Ответить с цитированием
Старый 06.07.2011, 13:23   #6
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

И вот ещё ссылка
Вообще на эту тему много чего есть в интернете.
l1pton17 вне форума Ответить с цитированием
Старый 06.07.2011, 13:26   #7
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
Печаль

да...но там все непонятно...да и стек нужен...
Protected_fat вне форума Ответить с цитированием
Старый 06.07.2011, 13:29   #8
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
По умолчанию

А как задать структуру для матрицы? как реализовать стек для матрицы? я не совсем понимаю...
Protected_fat вне форума Ответить с цитированием
Старый 06.07.2011, 13:51   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я абсолютно не знаю С (как и С++)
более того, я не смотрел предложенные варианты нахождения пути.
но
Цитата:
как реализовать стек для матрицы?
ответ на этот вопрос могу подсказать.
От Вас ожидается, что в стек Вы будете помещать КООРДИНАТЫ очередной ячейки (это либо пара индексов, либо элемент структуры, содержащий сразу пару координат), по которой двигаетесь при выборе очередного варианта движения. (при неудаче возвращаться назад, выкидывая из стека неудачный вариант, брать следующий и двигаться дальше).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.07.2011, 14:51   #10
Protected_fat
Пользователь
 
Регистрация: 04.07.2011
Сообщений: 21
Печаль

в инете много информации по этой задаче...голова кругом...и много разных кодов есть...но все они не работают...а исправить их я не могу...не понимаю...
Protected_fat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отыскание прохода по лабиринту в Delphi CyberGirl Помощь студентам 0 06.04.2011 08:20
Отыскание прохода по лабиринту В Delphi CyberGirl Помощь студентам 0 15.03.2011 14:20
проход по дереву на c++ Skilluser Помощь студентам 18 20.11.2010 19:34
С++. Отыскать проход по лабиринту Romer9999 Помощь студентам 1 17.06.2009 23:33
Проход по дереву. Ozerich Общие вопросы Delphi 1 05.10.2008 17:33