Splinter teaches the Teenage Muntant Hero TurtleToys to draw()
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax Canvas.setpenopacity(.5); const distanceScalar = 1.2; // min=.5, max=10, step=0.1 const deltaAngle = 1; // min=-45, max=45, step=1 class Sensei { constructor(distanceScalar, deltaAngle) { this.distanceScalar = distanceScalar; this.angle = 90 + deltaAngle; } sense(i) { this.i = i; } command(turtle, plan) { this.angle *= -1; plan(turtle, this.i * this.distanceScalar, this.angle) } } // Global code will be evaluated once. const Splinter = new Sensei(distanceScalar, deltaAngle); const Raphael = new Turtle(); const Leonardo = new Turtle(); const Michelangelo = new Turtle(); const Donatello = new Turtle(); Michelangelo.right(45); Donatello.right(45); // The walk function will be called until it returns false. function walk(i) { Splinter.sense(i); Splinter.command(Raphael, move); Splinter.command(Leonardo, move); Splinter.command(Michelangelo, move); Splinter.command(Donatello, move); return i < 1000; } function move(turtle, distance, angle) { turtle.forward(distance); turtle.right(angle); }