program tekenprogramma;
 uses crt,graph,mouse;
 var x,y,mx,my,mknop : integer;
     kleur : byte;
     gd,gm : integer;
        t  : integer;
        ch : char;
     o_y,o_x : integer;
 procedure initscreen;
  begin
   kleur:=0;
   t:=20;
   setfillstyle(1,white);
   bar(0,0,640,460);
   repeat
    setfillstyle(1,white);
    bar(t,317,t+20,443);
    setfillstyle(1,kleur);
    bar(t,420,t+20,440);
    inc(kleur);
    inc(t,20);
   until kleur>15;
  end;


 procedure startprog;
  begin
   x:=100;
   y:=100;
   o_y:=100;
   o_x:=100;
   kleur:=1;
   setcolor(kleur);
   showmousecursor;
   repeat
    getmouse(mx,my,mknop);
    ch:=#0;
    if keypressed  then ch:=readkey;
    if ch='k' then inc(y,4);
    if ch='i' then dec(y,4);
    if ch='l' then inc(x,4);
    if ch='j' then dec(x,4);
    putpixel(x,y,kleur+1);
    if x>o_x then for t:=0 to 4 do putpixel(x+t,y,kleur+1);

    if (o_x<>x) or (o_y<>y) then
                            begin
                             o_x:=x;
                             o_y:=y;
{                             putpixel(x,y,red);}
                             lineto(x,y);

                            end;

    if mknop=2 then begin delay(100); inc(kleur);end;
    if kleur=10 then kleur:=1;
    if mknop<>1 then moveto(mx,my);
    setcolor(kleur);
    if mknop=1 then begin lineto(mx,my)end;
    moveto(x,y);
   until (mknop=3) or (ch=#27);
  end;

 begin
  gd:=detect;
  initgraph(gd,gm,'');
  initscreen;
  startprog;
  closegraph;
 end.