А помогите пожалуйста улучшить это ( мигает, а это не приятно!)
Код
program DRAW_BLAD;
uses crt, graph;
const
left = #75;
right = #77;
up = #72;
down = #80;
var x, y, Driver, mode: integer;
c: char;
ekran:word;
procedure drawhead(x,y: integer);
var i:integer;
begin
setfillStyle (solidfill, yellow);
Pieslice(x,y,0,360,4);
setcolor(blue);
line(x-7, y-1, x+6, y-4);
line(x-7, y-2, x+6, y-4);
setcolor(black);
line(x-4, y-3, x+3, y-4);
setcolor(lightblue);
for i:= 1 to 3 do
line(x-4, y-3-i, x+3, y-5-i);
setcolor(lightblue);
setfillstyle(solidfill, lightblue);
pieslice(x+1,y-1,0, 360, 1);
end;
procedure drawbody(x,y: integer);
var i: integer;
begin
x:=x;
y:=y+7;
setfillstyle (solidfill, lightblue);
bar( x-2, y, x+3, y+15 );
setcolor(red);
line(x-4, y-3, x+3, y);
line(x-4, y-2, x+3, y);
line(x-4, y-1, x+3, y);
setcolor(white);
line(x-4, y-4, x+2, y-1);
setfillstyle ( 1 , lightblue);
pieslice( x-1, y+2, 0, 360, 2);
for i:= 0 to 4 do begin
if (i=0) or (i=4) then
setcolor(white)
else
setcolor(lightblue);
line(x-1, y+i, x+4, y+14+i);
end;
setcolor(yellow);
setfillstyle( 1, yellow);
pieslice( x+4, y+16, 0, 360, 2);
end;
procedure drawlegs(x,y:integer);
begin
x:=x;
y:=y+7+15;
setcolor(red);
setfillstyle(1,red);
bar(x-2, y, x+3, y+2);
setcolor(blue);
setfillstyle(1, lightblue);
bar(x-2,y+2,x+3, y+12);
setcolor(yellow);
setfillstyle( 1, yellow);
bar(x-1,y+12,x+1, y+14);
setcolor(black);
setfillstyle(1, black);
bar(x-1,y+14,x+2, y+17);
bar(x-2,y+15,x+5, y+18);
pieslice( x+5, y+16, 0 , 360, 2);
end;
procedure drawblad (x,y:integer);
begin
drawhead(x,y);
drawbody(x,y);
drawlegs(x,y);
end;
Begin
ekran:=0;
x:=100;
y:=200;
driver:=9;
Mode:=1;
initgraph( driver, mode , '');
setactivepage(ekran);
setvisualpage(ekran);
setfillstyle(1, green);
bar(0,0, getmaxx, getmaxy);
drawblad(x,y);
repeat
ekran:= ekran+1;
ekran:= ekran mod 2;
c:=readkey;
setactivepage(ekran);
case c of
#0:
case readkey of
left : begin
dec(x);
clrscr;
setfillstyle(1,green);
bar(0,0,getmaxx, getmaxy);
drawblad(x,y);
end;
right: begin
inc(x);
clrscr;
setfillstyle(1,green);
bar(0,0,getmaxx, getmaxy);
drawblad(x,y);
end;
up : begin
dec(y);
clrscr;
setfillstyle(1,green);
bar(0,0,getmaxx, getmaxy);
drawblad(x,y);
end;
down : begin
inc(y);
clrscr;
setfillstyle(1,green);
bar(0,0,getmaxx, getmaxy);
drawblad(x,y);
end;
end;
end;
setvisualpage(ekran);
until x=200;
readln;
end.