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();
const steps=60; // min=2, max=200, step=1
const size=10; // min=2, max=50, step=1
const density=5; // min=1, max=10, step=1

var currentx = 0;
var currenty = 0;

var proposedx = 0;
var proposedy = 0;
    
function randomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}



function hexwedge(radius) {
    var width = 0;
    var distance =0;

    while (distance <= radius) {
        turtle.penup();
        turtle.forward(.5);
        distance = distance + .5;
        if (randomNumber(1,10)<density) {
            width = Math.tan(30* (Math.PI / 180))*distance
            turtle.left(90);
            turtle.forward(width);
            turtle.pendown();
            turtle.backward(2*width);
            turtle.penup();
            turtle.forward(width);
            turtle.right(90);
            
        }
    }
    turtle.backward(radius);
}

function hexagon(radius) {
    turtle.seth(0);
    hexwedge(radius);
    turtle.seth(60);
    hexwedge(radius);    
    turtle.seth(120);
    hexwedge(radius);     
    turtle.seth(180);
    hexwedge(radius); 
    turtle.seth(240);
    hexwedge(radius);
    turtle.seth(300);
    hexwedge(radius);
    turtle.seth(0);
    
}

// The walk function will be called until it returns false.
function walk(i) {

    switch(randomNumber(1,6)) {
        case 1:
            turtle.seth(0);
            break;
        case 2:
            turtle.seth(60);
            break;
        case 3:
            turtle.seth(120);
            break;
        case 4:
            turtle.seth(180);
            break;
        case 5:
            turtle.seth(240);
            break;
        case 6:
            turtle.seth(300);
            break;
    }
    turtle.penup();
    turtle.forward(2*size);
    if (turtle.xcor() < 100 && turtle.xcor() > -100 && turtle.ycor() < 100 && turtle.ycor() > -100) {
        turtle.pendown();
        hexagon(size);
    } else {
        turtle.backward(2*size);
    }
    
    

    
    return i < steps;
}