Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   задачка по С++ (https://forum.antichat.xyz/showthread.php?t=40433)

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. задача легкая, но для того, чтобы ее решить, надо не тупо копировать код, но еше и думать. Головой.


Время: 18:18