Привет 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 вообще поддерживает рекурсивные функции?