Показать сообщение отдельно
Старый 25.11.2010, 05:09   #1
AleD
AnyKey`щик
 
Аватар для AleD
 
Регистрация: 25.11.2010
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Рекурсия в MP

Привет boolean.name! Решил посмсотреть MP и для теста начал писать сапёра, проблема вот в чём. Когда открываешь клетку, а там пусто, то, как и в MS Сапёре, открываются все смежные клетки, для этого использовал рекурсивную функцию:
procedure OpenEmpty(x, y: Integer);
begin
  if(x>=0)and(y>=0)and(x<=8)and(y<=8)and(space[x,y].tp=S_EMPTY)and(space[x,y].hidden>0)then
  begin
    space[x,y].hidden := 0;
    OpenEmpty(x, y-1);
    OpenEmpty(x-1, y);
    OpenEmpty(x, y+1);
    OpenEmpty(x+1, y);
  end;
end;
Но процедура просто зависает вроде бы есть 2 ограничения - размер поля и клетки только со свойством hidden>0.
=====Thread[Thread-4,1,main]=====
M.think(I)V
  M.openfield(II)V
    M.openempty(II)V
      M.openempty(II)V
        M.openempty(II)V
          M.openempty(II)V
            M.openempty(II)V
MP вообще поддерживает рекурсивные функции?
(Offline)
 
Ответить с цитированием