[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]