Среда разработки: Turbo Pascal 7.1

uses graph,crt;
const step=5;
var Gd,Gm,x,y,k:Integer; ch:char; form:real;

{------------------------------------------------}
procedure square(x1,y1,x2,y2,x3,y3,x4,y4:integer);
begin
if (abs(x2-x1)<=1) and (abs(y2-y1)<=1) then exit;
Line(x1,y1,x2,y2);
Line(x2,y2,x3,y3);
Line(x3,y3,x4,y4);
Line(x4,y4,x1,y1);
square(round((x1+x2)/2),round((y1+y2)/2),
        round((x2+x3)/2),round((y2+y3)/2),
        round((x3+x4)/2),round((y3+y4)/2),
        round((x4+x1)/2),round((y4+y1)/2))
end;
{------------------------------------------------}

begin
    x:=100;
    y:=100;
    k:=200;
    Gd:=Detect;
    InitGraph(Gd,Gm,'');
    If GraphResult <> grOk Then Halt(1);
    square(x,y,x+k,y,x+k,y+k,x,y+k);
repeat
      ch:=readkey;
      setcolor(black);
      square(x,y,x+k,y,x+k,y+k,x,y+k);
      case ch of
        #80: inc(y,step);
        #72: dec(y,step);
        #77: inc(x,step);
        #75: dec(x,step);
        '+': inc(k,step);
        '-': dec(k,step);
      end;
      setcolor(white);
      square(x,y,x+k,y,x+k,y+k,x,y+k);
until ch=#27;
CloseGraph;
end.
Hosted by uCoz