Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Игра "Сапёр" на Паскале

29K
11 апреля 2008 года
indivisible_int
18 / / 02.02.2008
Пишу самостоятельно курсовую игру "Сапёр" на Паскале,
но не могу найти ошибку в рекурсивной процедуре открытия ячеек. При открытии одной ячейки открывается всё поле. Помогите, пожалуйста, найти и исправить ошибку(может быть, не одну. Исходник прикреплён к сообщению). Готовые примеры из Интернета есть, но хочется написать самостоятельно...
360
14 апреля 2008 года
P*t*
474 / / 15.02.2007
Код:
procedure matrix.OpenCells(i,j:integer);
   var t:integer;
   begin
        t := 0;
        if (i < 1) or (j < 1) then t := 1;
        if (i = n+1) or (j = n+1) then t := 1;
        if t = 0 then
        begin
             if marked[j] = FALSE then
             begin
                  marked[j] := TRUE;
                  DrawOpenedCells(i,j);
                  if mines[j] = FALSE  then
                  begin
                       OpenCells(i-1,j);
                       OpenCells(i+1,j);
                       OpenCells(i,j-1);
                       OpenCells(i,j+1);
                       OpenCells(i-1,j-1);
                       OpenCells(i+1,j-1);
                       OpenCells(i-1,j+1);
                       OpenCells(i+1,j+1);
                  end;
             end;
        end;
   end;


 
Код:
if mines[j] = FALSE  then

нужно заменить на
 
Код:
if DetectMines( a , b )=0  then


P.S Код слегка запутанный - зачем, например, надо сначала переводить координаты мины в координаты пиксела, а затем назад?

Ещё логично было бы в DrawOpenedCells в случае если в ячейке бомба не печатать в неё количество бомб рядом.
29K
17 апреля 2008 года
indivisible_int
18 / / 02.02.2008
Спасибо, это действительно работает! Просто эта программа писалась с перерывом в три месяца и мне было трудно даже разобраться в ней:o
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог