Some random walks away from a square's edge.
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax Canvas.setpenopacity(-1); // Global code will be evaluated once. const turtle = new Turtle(); function turtle_start() { turtle.penup(); let side = Math.floor(Math.random()*4); let position = Math.random()*100-50; let angle = Math.random()*180; if (side == 0) { turtle.goto(-50,position); turtle.seth(angle+90); } if (side == 1) { turtle.goto(position, -50); turtle.seth(angle+180); } if (side == 2) { turtle.goto(50, position); turtle.seth(angle+270); } if (side == 3) { turtle.goto(position, 50); turtle.seth(angle); } turtle.pendown(); } turtle_start(); function turtle2_start() { turtle.penup(); let side = Math.floor(Math.random()*4); let position = Math.random()*80-40; let angle = Math.random()*180; if (side == 0) { turtle.goto(-40,position); turtle.seth(angle+270); } if (side == 1) { turtle.goto(position, -40); turtle.seth(angle); } if (side == 2) { turtle.goto(40, position); turtle.seth(angle+90); } if (side == 3) { turtle.goto(position, 40); turtle.seth(angle+180); } turtle.pendown(); } let outer = true; // The walk function will be called until it returns false. function walk(i) { turtle.forward(1); turtle.lt((Math.random()-0.5)*50); if (outer) { if (Math.random() < 0.1 || (turtle.x() < 50 && turtle.x() > -50 && turtle.y() < 50 && turtle.y() > -50)) { if (i<5000) { turtle_start(); } else { outer = false; turtle2_start(); } } } else { if (Math.random() < 0.1 || (turtle.x() > 40 || turtle.x() < -40 || turtle.y() > 40 || turtle.y() < -40)) { turtle2_start(); } } return i < 10000; }