Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 2 KB
program labirintus;
var n :byte;
l :array[0..260,0..260] of char;
procedure beolvas;
var i,j :integer;
t :text;
begin
for i:=0 to 260 do
begin
for j:=0 to 260 do
begin
l[i,j]:='#';
end;
end;
assign(t,'lab.be');
reset(t);
readln(t,n);
for i:=1 to n+2 do
begin
for j:=1 to n+2 do
begin
read(t,l[i,j]);
end;
readln(t);
end;
end;
procedure balkez;
type irany=record
sor: integer;
oszlop :integer;
end;
var i,j :byte;
ir,f :irany;
begin
ir.sor:=0;
ir.oszlop:=1;
i:=2;
j:=1;
l[2,1]:='.';
while (i<n+1) or (j<n+2) do
begin
if (l[i+ir.sor,j+ir.oszlop]<>'#') and (l[i-ir.oszlop+ir.sor,j+ir.sor+ir.oszlop]='#') then
begin
l[i+ir.sor,j+ir.oszlop]:='.';
i:=i+ir.sor;
j:=j+ir.oszlop;
write('E');
end
else if (l[i+ir.sor,j+ir.oszlop]='#') and (l[i+ir.oszlop,j-ir.sor]<>'#') and (l[i+ir.oszlop+ir.sor,j-ir.sor+ir.oszlop]='#') then
begin
l[i+ir.oszlop,j-ir.sor]:='.';
i:=i+ir.oszlop;
j:=j-ir.sor;
f.sor:=ir.sor;
f.oszlop:=ir.oszlop;
ir.sor:=f.oszlop;
ir.oszlop:=-f.sor;
write('JE');
end
else if (l[i+ir.sor,j+ir.oszlop]<>'#') and (l[i-ir.oszlop+ir.sor,j+ir.sor+ir.oszlop]<>'#') then
begin
l[i+ir.sor,j+ir.oszlop]:='.';
l[i-ir.oszlop+ir.sor,j+ir.sor+ir.oszlop]:='.';
i:=i-ir.oszlop+ir.sor;
j:=j+ir.sor+ir.oszlop;
f.sor:=ir.sor;
f.oszlop:=ir.oszlop;
ir.sor:=-f.oszlop;
ir.oszlop:=f.sor;
write('EBE');
end
else if (l[i+ir.sor,j+ir.oszlop]='#') and (l[i+ir.oszlop,j-ir.sor]='#') and (l[i-ir.oszlop,j+ir.sor]='#') then
begin
ir.sor:=-ir.sor;
ir.oszlop:=-ir.oszlop;
write('BB');
end;
end;
writeln;
for i:=1 to n+2 do
begin
for j:=1 to n+2 do
begin
write(l[i,j]);
end;
writeln;
end;
end;
begin
beolvas;
balkez;
readln;
end.