[Back to TURTLE SWAG index]  [Back to Main SWAG index]  [Original]

(* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
   ³ Programated by Vladimir Zahoransky                        ³
   ³                Vladko software                            ³
   ³ Contact      : zahoran@cezap.ii.fmph.uniba.sk             ³
   ³ Program tema : Move turtles!                              ³
   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)

{       This program is easy to undestand.  Just move all turtles, but
 for all use one command. The lenght of move is a coeficient. This
 program show how to do with dynamical turtles. Just in two cycles
 init (with pridajkor) all turtles. Define scale for turtles and
 make relation for coeficients. Then in two cycles move turtles.
}


Uses DynKor,DynVelaKor;

Const d=40;
      u=pi/4;

Type PMyTur=^MyTur;
      MyTur=Object(kor)
              k:real;
              Constructor init(x,y,u:real);
              Procedure koef(kk:real);
              Procedure dopredu(d:real);virtual;
             End;

Constructor MyTur.init(x,y,u:real);
Begin
Inherited init(x,y,u);
k:=1;
End;

Procedure MyTur.koef(kk:real);
Begin
k:=kk;
End;

Procedure MyTur.dopredu(d:real);
Begin
Inherited dopredu(d*k);
End;

Var v:velakor;
    i,j,px,py:integer;
    y,x,dx:real;

begin
  y:=d/sin(u);
  py:=trunc(480/y);
  x:=d/cos(u);
  px:=trunc(640/x);

  with v do Begin
            Init;
            For i:=1 to py do Begin
                              Pridajkor(new(PMyTur,init(0-320,i*d/sin(u)-240,
                                             u/pi*180)));
                              PMyTur(k[pk])^.koef((480-i*d/sin(u))/cos(u));
                              End;
            For i:=py+1 to py+px do pridajkor(new(PMyTur,init((i-py-1)*d/
                                              cos(u)-320,0-240,u/pi*180)));
            j:=px;
            dx:=480*sin(u)/cos(u);
  While (dx+j*x>640) do dec(j);
  For i:=py+1 to py+j do PMyTur(k[i])^.koef(480/cos(u));
  For i:=py+j+1 to py+px do PMyTur(k[i])^.koef((640-(i-py)*d/cos(u))/cos(u));
    Ukaz;
    Pd;
    CakajKlaves;
    Dopredu(1);
    CakajKlaves;
    Koniec;
            End;

End.

[Back to TURTLE SWAG index]  [Back to Main SWAG index]  [Original]