Jump to content

Dragon curve: Difference between revisions

PascalABC.NET
m (Algol 68 →‎L-System: comments)
(PascalABC.NET)
 
Line 5,355:
close;
end.</syntaxhighlight>
 
 
=={{header|PascalABC.NET}}==
<syntaxhighlight lang="delphi">
uses Turtle;
 
var
Atom,FStr,XStr,YStr: string;
angle,len,x0,y0: real;
n: integer;
 
procedure Init1; // Dragon
begin
(Atom,FStr,XStr,YStr) := ('fx','f','x+yf+','-fx-y');
(angle,len,n,x0,y0) := (90,3,15,300,450);
end;
 
procedure RunStr(s: string; n: integer);
begin
foreach var c in s do
case c of
'+': Turn(angle);
'-': Turn(-angle);
'f','F': if n>0 then RunStr(FStr,n-1) else Forw(len);
'x','X': if n>0 then RunStr(XStr,n-1);
'y','Y': if n>0 then RunStr(YStr,n-1);
else Print('error')
end;
end;
 
begin
Init1;
ToPoint(x0,y0);
SetWidth(0.5);
Down;
RunStr(Atom,n);
Up;
end.
</syntaxhighlight>
 
 
256

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.