Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,37 @@
define halfpi = Math.pi/2;
# Computing the dragon with a L-System
var dragon = 'FX';
{
dragon.gsub!('X', 'x+yF+');
dragon.gsub!('Y', '-Fx-y');
dragon.tr!('xy', 'XY');
} * 10;
# Drawing the dragon in SVG
var (x, y) = (100, 100);
var theta = 0;
var r = 2;
print <<'EOT';
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN'
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<svg width='100%' height='100%' version='1.1'
xmlns='http://www.w3.org/2000/svg'>
EOT
dragon.each { |c|
given(c) {
when ('F') {
printf("<line x1='%.0f' y1='%.0f' ", x, y);
printf("x2='%.0f' ", x += r*Math.cos(theta));
printf("y2='%.0f' ", y += r*Math.sin(theta));
printf("style='stroke:rgb(0,0,0);stroke-width:1'/>\n");
}
when ('+') { theta += halfpi }
when ('-') { theta -= halfpi }
}
}
print '</svg>';