Прога частично напоминает морской бой. Задается поле, на нем можно расставлять острова (один квадрат –ик один остров). После расставления островов, прога должна сосчитать их кол-во.
Проссмотрел выше указанный код, начиная с {реализации алготма} подставил в свою программу. Теперь при выделении парных(т.е. из 2-ух клеток) и не парнх островов, в кол-ве пишется 0, а когда убираю минус перед единицейне(см. ниже) то прога считает по принципу одна клетка один остров. Внимание вопрос. Из-за чего так получается?
...... {Реализация алгоритма} n:=0; for y:=1 to my do for x:=1 to mx do
if Z[x,y]=-1 then begin {Вот тут убираю минус}
Inc(n); Z[x,y]:=n; repeat Flag:=false; for j:=1 to my do for i:=1 to mx do if (Z[i,j]=-1)and((i>1)and(Z[i-1,j]=n)or(i<mx)and(Z[i+1,j]=n)or(j>1)and(Z[i,j-1]=n)or(j<my)and(Z[i,j+1]=n)) then begin Z[i,j]:=n; Flag:=true end until not Flag end; WriteLn('Total islands: ',n); ...... ReadLn