PDA

Просмотр полной версии : задачка по С++


sanua
20.05.2007, 12:45
Написать программу, отыскивающую проход по лабиринту с использованием контейнерного класса stack из STL. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то в вход в него возможен со стороны, но не с угла. Программа находит проход через лабиринт, двигаясь от заднего входа. После отыскивания прохода программа выводит найденный путь в виде координат. квадратов.
(в 3 файла - main.cpp,head.h,stack.cpp ) Это задание моего курсовика. Помогите пожалуйста. курсач горит =( может кто выожить исходники? Буду очень благодарен за любую помощь)

nerezus
20.05.2007, 12:54
Алго простейший. Просто есть 4 переменные u, r, d, l. Т.е. вверх, вправо, вниз, влево. Заносишь в стек первую. Если туда можно перейти, то обрабатываешь следующий квадрат(но не тот, который на верху стека, т.к. это будет возвратом назад). Если нельзя, то заменяешь переменную на следующую(enum в помощь). Если переменная эта l(т.е. квадрат не имеет выхода), то снимаем верхушку стека и перебираем дальше.

nerezus
20.05.2007, 12:55
А еще можно просто алгоритмом фронта волны ;)
Тогда вообще задача будет примитивной и никакие стеки нахрен не нужны будут.

sanua
20.05.2007, 15:20
если бы можно было бы увидеть исходники((в 3 файла)с использованием контейнерного класса stack из STL) моей благодарности не было б предела :rolleyes:

nerezus
20.05.2007, 15:45
писать лень... алго тебе сказали, осталось закодить.

nerezus
20.05.2007, 15:48
просто представь все открытые квалраты ввиде узлов графа, а соседние квадраты соедени ветвями. И просто сделай алгоритм фронта волны(use google, «алгоритм волны»). А стек тут нахрен не нужен, он лишь будет нужен для хренового способа(который самый очевидный, я его привел первым)

nerezus
20.05.2007, 15:50
http://algolist.manual.ru/games/wavealg.php
вот тут типа описание, но я бы кодеру этого говнокода руки бы оторвал, т.к. можно в несколько раз короче записать

sanua
20.05.2007, 17:13
большое спасибо за инфу :) пойду мучать С

sanua
27.05.2007, 05:18
пробывал...никак не получается сделать прогу(видимо сказывается "опытность")...Люди!кто знает как решить данную задачку? прошу помогите исходниками(и именно - с использованием контейнерного класса stack из STL :( ). Буду очень благодарен!

nerezus
27.05.2007, 10:24
и именно - с использованием контейнерного класса stack из STL хочешь я открою тебе страшную тайну? есть такой мегахеккерский сайт гуголь.
Ио н может ответить на твой вопрос.
Я даже у него спросил. И он правильно ответил.
Пользуйся моей добротой: http://www.google.com/search?q=STL+stack

P.S. задача легкая, но для того, чтобы ее решить, надо не тупо копировать код, но еше и думать. Головой.

_Great_
27.05.2007, 12:30
пробывал...никак не получается сделать прогу(видимо сказывается "опытность")...Люди!кто знает как решить данную задачку? прошу помогите исходниками(и именно - с использованием контейнерного класса stack из STL :( ). Буду очень благодарен!
Алгоритм объяснили, за синтаксисом использования STL - открываешь Google и вбиваешь в поиск слово "STL". Первая же ссыль на мануал. Ищешь там ветку Containers, в ней - stack. И смотришь как его использовать.
PS. Пользуйся моей добротой (С) нер: http://www.sgi.com/tech/stl/stack.html

sanua
28.05.2007, 15:35
да все это хорошо.вот только знаком с С++ 4 месяца(да и то за эти 4 месяца толком не научился) + до этого никаких языков не изучал,так что сам прогу не могу написать...а вам я и написал в надежде на помощь.

nerezus
28.05.2007, 20:46
да все это хорошо.вот только знаком с С++ 4 месяца А я меньше. И что?

_Great_
28.05.2007, 20:57
да все это хорошо.вот только знаком с С++ 4 месяца(да и то за эти 4 месяца толком не научился) + до этого никаких языков не изучал,так что сам прогу не могу написать...а вам я и написал в надежде на помощь.
Если помощь == написание за тебя всей программы, тогда долго тебе искать придется энтузиастов. Сессия ща, времени мало

nerezus
28.05.2007, 21:25
слушай сюда, кросавчег
если я те напишу, то ты нихрена не поймешь тему и будет хуже только тебе. Поэтому хватит 2.78бать вола, просто попробуй сделать и у тебя все получится. Just trust me ;)

N1K
28.05.2007, 22:45
ТОесть как не сможешь написать? Азы знаешь? Ситаксис? Операторы? Думаю да, если 4 месяца изучаешь. А если взялся за С++, значит и английский тоже хоть немного но знаешь... В таком случае за несколько дней вполне реально разобраться и решить задачу.

sanua
29.05.2007, 01:44
ТОесть как не сможешь написать? Азы знаешь? Ситаксис? Операторы? Думаю да, если 4 месяца изучаешь.
в том и дело я - совершенно не знаю С++ (как вы понять не можете =) ) и разбирусь я в этой теме лучше после сесии !) люди пожалуйста помогите с прогой) я вам буду благодарен всю жизнь!)