level 6
program colormap;
const
co:array[0..7]of longint
=(0,$ff0000,$ff8000,$ffff00,$00ff00,$00ffff,$0000ff,$ff00ff);
head:array[0..53]of byte
=(66,77,54,00,03,00,00,00,
00,00,54,00,00,00,40,00,
00,00,00,01,00,00,00,01,
00,00,01,00,24,00,00,00,
00,00,00,00,03,00,00,00,
00,00,00,00,00,00,00,00,
00,00,00,00,00,00);
dx:array[0..3]of longint=(0,1,0,-1);
dy:array[0..3]of longint=(1,0,-1,0);
var
fi:file of byte;
a:array[0..255,0..255]of longint;
qx,qy:array[0..7,0..65535]of longint;
i,j,x,y,wb,wb1,ff:longint;
f,r,sx,sy:array[0..7]of longint;
red,green,blue:byte;
success:boolean;
procedure extendc(color:longint);
begin
for i:=1 to 7 do
begin
ff:=f[i];
while ff<=r[i] do
begin
for j:=0 to 3 do
begin
x:=qx[i,ff]+dx[j];y:=qy[i,ff]+dy[j];
if x>=0 then
if x<256 then
if y>=0 then
if y<256 then
if a[x,y]=color then
begin
inc(r[i]);
dec(wb);
qx[i,r[i]]:=x;
qy[i,r[i]]:=y;
a[x,y]:=co[i];
end;
end;
inc(ff);
end;
end;
end;
procedure simpize;
var
i1,j1,x1,y1,bj1:longint;
begin
for i1:=1 to 7 do
begin
while f[i1]<=r[i1] do
begin
bj1:=0;
for j1:=0 to 3 do
begin
x1:=qx[i1,f[i1]]+dx[j];
y1:=qy[i1,f[i1]]+dy[j];
2009年08月06日 09点08分