| indivisible_int |
13.04.2008 20:41
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 1 Пол: Женский Репутация: 0 |
Товарищи, помогите, пожалуйста найти ошибку в программе! Для автоматического открытия ячеек
используется рекурсивная процедура OpenCells, но открывается почему-то всё поле. Чесно скажу, в программе использованы алгоритмы из других исходников, поэтому мне не удаётся разобраться в этой куче. (Исходный текст прилагаю) Прикрепленные файлы
CURSGAME.PAS ( 8.66 килобайт )
Кол-во скачиваний: 465 |
![]() ![]() |
| volvo |
14.04.2008 10:46
Сообщение
#2
|
|
Гость |
Цитата Для автоматического открытия ячеек используется рекурсивная процедура OpenCells, но открывается почему-то всё поле. Потому, что надо останавливать рекурсию, как только была отрисована ячейка с NumOfNearMines, отличным от 0. Для этого немного переделываем программу - процедуру DrawOpenedCells делаем функцией, и возвращаем результат:function matrix.DrawOpenedCells(i,j: integer): boolean;, а ту самую рекурсивную процедуру OpenCells меняем вот таким образом: procedure matrix.OpenCells(i,j:integer);, то есть продолжаем рекурсию только тогда, когда только что отрисованная ячейка не содержала цифры... Не забудь поменять и определение метода DrawOpenedCells в описании объекта... |
![]() ![]() |
|
Текстовая версия | 9.12.2025 1:28 |