Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Xonix. Зависание. |
Автор: GHOST32 29.5.2013, 19:10 | ||
Пишу игру Xonix на DevCpp. Игрок должен бегать по полю и отсекать его участки. Поле состоит из клеток, каждой клетке соответствует ячейка двумерного массива. В данный момент я застрял на этапе заливки поля. Алгоритм такой: сначала делим линией поле на 2 части, сравниваем их с помощью рекурсивной функции, а затем закрашиваем меньшую часть опять же с помощью рекурсивной функции. Выглядит примерно так: поле вначале 000000 000000 000000 000000 разделили поле на две части 000000 001111 001000 001000 закрасили часть 000000 002222 002222 002222 Проблема в том, что после деления поля линией программа зависает. Возможно проблема в функции, которая считает количество клеток в выделенной части поля.
Где может быть ошибка? |
Автор: GHOST32 29.5.2013, 22:40 | ||
Нет, дело не в границах. Изначально поле выглядит так. 222222222222 222222222222 220000000022 220000000022 220000000022 220000000022 220000000022 222222222222 222222222222 0 - не закрашенная клетка, 2 закрашенная клетка. |
Автор: feodorv 30.5.2013, 05:24 | ||
Хорошо, пусть границы Вы задали явно, хотя здесь это не очевидно: От повторной рекурсии для данного поля Вы всё же не свободны:
Клетка или посчитана, или нет. Присваивая обратно 0, Вы её делаете снова неподсчитанной и непройденной. |