![]() |
задачка по С++
Написать программу, отыскивающую проход по лабиринту с использованием контейнерного класса stack из STL. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то в вход в него возможен со стороны, но не с угла. Программа находит проход через лабиринт, двигаясь от заднего входа. После отыскивания прохода программа выводит найденный путь в виде координат. квадратов.
(в 3 файла - main.cpp,head.h,stack.cpp ) Это задание моего курсовика. Помогите пожалуйста. курсач горит =( может кто выожить исходники? Буду очень благодарен за любую помощь) |
Алго простейший. Просто есть 4 переменные u, r, d, l. Т.е. вверх, вправо, вниз, влево. Заносишь в стек первую. Если туда можно перейти, то обрабатываешь следующий квадрат(но не тот, который на верху стека, т.к. это будет возвратом назад). Если нельзя, то заменяешь переменную на следующую(enum в помощь). Если переменная эта l(т.е. квадрат не имеет выхода), то снимаем верхушку стека и перебираем дальше.
|
А еще можно просто алгоритмом фронта волны ;)
Тогда вообще задача будет примитивной и никакие стеки нахрен не нужны будут. |
если бы можно было бы увидеть исходники((в 3 файла)с использованием контейнерного класса stack из STL) моей благодарности не было б предела :rolleyes:
|
писать лень... алго тебе сказали, осталось закодить.
|
просто представь все открытые квалраты ввиде узлов графа, а соседние квадраты соедени ветвями. И просто сделай алгоритм фронта волны(use google, «алгоритм волны»). А стек тут нахрен не нужен, он лишь будет нужен для хренового способа(который самый очевидный, я его привел первым)
|
http://algolist.manual.ru/games/wavealg.php
вот тут типа описание, но я бы кодеру этого говнокода руки бы оторвал, т.к. можно в несколько раз короче записать |
большое спасибо за инфу :) пойду мучать С
|
пробывал...никак не получается сделать прогу(видимо сказывается "опытность")...Люди!кто знает как решить данную задачку? прошу помогите исходниками(и именно - с использованием контейнерного класса stack из STL :( ). Буду очень благодарен!
|
Цитата:
Ио н может ответить на твой вопрос. Я даже у него спросил. И он правильно ответил. Пользуйся моей добротой: http://www.google.com/search?q=STL+stack P.S. задача легкая, но для того, чтобы ее решить, надо не тупо копировать код, но еше и думать. Головой. |
| Время: 18:18 |