- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
//у стены - нахождение клеток "у стены"
procedure useny(var vsten:bulArr);
var i,i2:integer;
function sh(x,y,n:integer):boolean; // n-номер сдвига n=[2..5]
begin
if vsten[x+sdx[n],y+sdy[n]] then sh:=true
else
if sten[x+sdx[n],y+sdy[n]] then sh:=false
else
if sten[i2+sdx[n-1],i+sdy[n-1]]or sten[i2+sdx[n+1],i+sdy[n+1]]
then sh:=sh(x+sdx[n],y+sdy[n],n)
else sh:=false;
if result then vsten[x,y]:=true;
end;
begin
for i:=0 to ny do
for i2:=0 to nx do
if not(sten[i2,i]) then
if (sten[i2+1,i] or sten[i2-1,i])and(sten[i2,i+1] or sten[i2,i-1]) then
begin
vsten[i2,i]:=true;
sh(i2,i,2);sh(i2,i,3);sh(i2,i,4);sh(i2,i,5);
end;
end;
kegdan 22.01.2014 19:03 # +1
wvxvw 22.01.2014 23:49 # −1