5 / 5 / 1
Регистрация: 26.10.2012
Сообщений: 20
|
|
1 | |
Сапёр В паскале13.12.2012, 14:05. Показов 1199. Ответов 0
Метки нет (Все метки)
Подскажите идею обхода или решения проблемы при реализации сапёра. А проблема следующая. В виду того, что реализаций сапёра на паскале немного, и разбирать малопонятный чужой велосипед не получилось из-за отсутствия навыков -решил написать свой велосипед. И пришёл к выводу, что я застрял )))). Как известно, в сапёре (в любом в моём случае на ubuntu) при нажатии на клетку где нет мин, и число мин рядом равно 0 - открываются все такие клетки в области, ограниченной ненулевыми клетками. Вопрос в том, как выяснить, какие клетки нужно открывать при нажатии на такую нулевую клетку. Технические детали меня интересуют мало, интересует идея, словами или псевдо-кодом. В основном видел рекурсию, которую безуспешно пытался реализовать, но я крайне не люблю рекурсию, т.к. практически не могу анализировать, что при ней происходит, и тем более не могу ограничить ее глубину, в связи с чем регулярно получаю переполнение стека. Если все таки процедура обязана (знаю-что доказана теорема о том что любая рекурсия может быть заменена нерекурсивным участком, но этого просить не могу, т.к. там, вероятно, жесть) быть рекурсивной, то пожалуйста приведите примерный ее код. Для условности игрок открыл нулевую ячейку с координатами i,j (поле - реализовано матрицей). Есть процедура открытия восьми ячеек вокруг этой ячейки (opensquare(i,j)). Т.к. без неё, мне казалось совсем путь в никуда. Буду очень благодарен ответам. Спасибо за внимание.
0
|
13.12.2012, 14:05 | |
Ответы с готовыми решениями:
0
Как работает join и split в Паскале? И есть ли такие аналоги Питону в Паскале? Сапер Сапер Сапер на С++ |
13.12.2012, 14:05 | |
13.12.2012, 14:05 | |
Помогаю со студенческими работами здесь
1
Сапёр Сапер на C++ Сапер Сапер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |