Working towards Truchet tiles
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 gap = 12; //min=1 max=51 step=1
const gridCount = 15; //min=1 max=40 step=1
const size = 11; //min=5 max=50 step=1
const xOffset = -90; //min=-100 max=80 step=1
const yOffset = -90; //min=-100 max=80 step=1
const outline = 0;//min=0 max=1 step=1 (No, Yes)
const random = 0;//min=0 max=1 step=1 (No, Yes)
let r = 0;// //min=0 max=3 step=1
let t = 0;
if(random === 0){
r = randomInRange(0, 3); // Pick a random number
}
for(let x=0; x < gridCount; x++){
for(let y=0; y < gridCount; y++){
square((x * gap) + xOffset, (y * gap)+ yOffset);
}
}
function square(x,y) {
turtle.penup();
turtle.goto(x,y);
turtle.pendown();
// only draw the outline square if required
if(outline === 1){
for(let i=0; i< 4; i++){
turtle.forward(size);
turtle.right(90);
}
}
if(random === 1){
r = randomInRange(0, 3); // Pick a random number
}
switch(r) {
case 0:
turtle.pendown();
turtle.circle(size, extent = 90);
turtle.circle(size, extent = -90);
turtle.penup();
break;
case 1:
turtle.left(90);
turtle.pendown();
turtle.circle(size, extent = -90);
turtle.penup();
turtle.circle(size, extent = 90);
turtle.right(90);
break;
case 2:
turtle.penup();
turtle.forward(size);
turtle.right(90);
turtle.pendown();
turtle.circle(size, extent = 90);
turtle.penup();
turtle.circle(size, extent = -90);
turtle.left(90);
turtle.backward(size);
break;
case 3:
turtle.penup();
turtle.forward(size);
turtle.pendown();
turtle.circle(size, extent = -90);
turtle.penup();
turtle.circle(size, extent = 90);
turtle.backward(size);
break;
default:
} // end of case
}
function randomInRange(from, to) {
var r = Math.random();
return Math.floor(r * (to - from) + from);
}