Uses Graph;
Procedure WrCr1(LX,LY,Rad,den:word;c1,c2,c3,c4:byte);
var i:word;
begin
  for i := 0 to Rad div Den do
   begin
     SetColor(c1);
     Line(LX,LY,LX+I*Den,LY-Rad);
     SetColor(c2);
     Line(LX,LY-Rad,LX+Rad,LY-Rad+I*Den);
     SetColor(c3);
     Line(LX+Rad,LY-Rad,LX+Rad-I*Den,LY);
     SetColor(c4);
     Line(LX+Rad,LY,LX,LY-I*Den);
   end;
  for i := 1 to Rad div Den do
   begin
     SetColor(c1);
     Line(LX,LY,LX+Rad,LY-Rad+I*Den);
     SetColor(c2);
     Line(LX,LY-Rad,LX+Rad-I*Den,LY);
     SetColor(c3);
     Line(LX+Rad,LY-Rad,LX,LY-I*Den);
     SetColor(c4);
     Line(LX+Rad,LY,LX+I*Den,LY-Rad);
   end;
end;

Procedure WrCr2(LX,LY,Rad,den:word;c1,c2,c3,c4:byte);
var i:word;
begin
  for i := 0 to Rad div Den do
   begin
     SetColor(c1);
     Line(LX,LY,LX+I*Den,LY-Rad);
     Line(LX,LY,LX+Rad,LY-Rad+I*Den);
     SetColor(c2);
     Line(LX,LY-Rad,LX+Rad,LY-Rad+I*Den);
     Line(LX,LY-Rad,LX+Rad-I*Den,LY);
     SetColor(c3);
     Line(LX+Rad,LY-Rad,LX+Rad-I*Den,LY);
     Line(LX+Rad,LY-Rad,LX,LY-I*Den);
     SetColor(c4);
     Line(LX+Rad,LY,LX,LY-I*Den);
     Line(LX+Rad,LY,LX+I*Den,LY-Rad);
   end;
end;

var
  g,s,i : integer;
Begin
  InitGraph(g,s,'');
  SetWriteMode(0);
  WrCr1(150,400,320,4,1,2,4,8);
{  WrCr1(320,200,160,2,1,2,4,8);
  WrCr1(160,200,160,2,8,4,2,1);
  WrCr1(160,360,160,2,4,8,1,2);
  WrCr1(320,360,160,2,2,1,8,4);
  WrCr1(0,200,160,2,1,2,4,8);
  WrCr1(0,360,160,2,2,1,8,4);
  WrCr1(480,200,160,2,8,4,2,1);
  WrCr1(480,360,160,2,4,8,1,2);}
  ReadLn;
  CloseGraph;
end.