let n=35;
c=0;
function setup(){
createCanvas(windowWidth,windowHeight)
angleMode(DEGREES);
fill(0,100,200);
noStroke();
frameRate(1)
}
function draw(){
r=30
background(255,255,255);
t=frameCount
for (let j=0;j<n+3;j++){
for (let i=0;i<n+3;i++){
p=int(random(0,4))
fill(0,4*i+4*j,100+i*2+j*2)
push()
translate(i*(width/n),j*width/n);
rotConfig(c,i,j);
triangle(0,0,0,width/n,width/n,width/n);
pop()
}
}
noLoop()
}
function mousePressed(){
c = c+1;
draw();
}
function rotConfig(config,i,j){
if (config ==1){
if (i%2==0){
rotate(90);
}
}
if (config%2==0&config!=0){
rotate(90*int(random(0,4)))
}
if (config ==3){
if (i%4==0&&j%2==0){
rotate(90);
}
}
if (config ==5){
if (i%2==0&&j%4==0){
rotate(-90);
}
}
if (config ==7){
if (i>n/2&&j>n/2){
rotate(90);
}
if (i<=n/2&&j>n/2){
rotate(180);
}
if (i<n/2&&j<=n/2){
rotate(-90);
}
}
if (config ==9){
rotate(90*i+90*j)
}
if (config ==11){
rotate(90*i-180*j)
}
if (config ==13){
rotate(90*i-90*(j+i%2))
}
if (config ==15){
rotate(90*i-90*(i+i%2))
}
if (config ==17){
rotate(90*i-90*(i+i%2))
rotate(90*i-90*(i+i%2))
}
if (config ==19){
rotate(90*i-90*(i+j%2))
rotate(90*i-90*(i+i%2))
}
if (config ==21){
rotate(90*i-90*(j+i%2))
rotate(90*i-90*(i+j%2))
}
if (config ==23){
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
}
if (config ==25){
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
}
if (config ==27){
rotate(90*i-90*(j+i%5))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
}
if (config ==29){
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%2))
rotate(90*i-90*(j+j%2))
}
if (config ==31){
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%2))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%3))
rotate(90*i-90*(j+j%2))
rotate(90*i-90*(j+i%2))
rotate(90*i-90*(j+j%2))
}
if (config ==33){
rotate(90*j-90*(j+i%3))
rotate(90*i-90*(j+j%2))
rotate(90*j-90*(j+i%2))
rotate(90*i-90*(j+j%2))
}
if (config ==35){
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
}
if (config ==37){
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
}
if (config ==39){
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
}
if (config ==41){
rotate(90*(j%4)-90*(j+j%2))
rotate(90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
}
if (config ==43){
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
}
if (config ==45){
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
}
if (config ==47){
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%2))
rotate(90*(j%5)-90*(j+j%2))
}
if (config ==49){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+j%3))
rotate(90*(j%5)-90*(j+j%2))
}
if (config ==51){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
}
if (config ==53){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
}
if (config ==55){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
}
if (config ==57){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
if(i>n/2){
rotate(90);
}
}
if (config ==59){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
if(i>n/2){
rotate(90);
}
if(j>n/2){
rotate(90);
}
}
if (config ==61){
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
rotate(-90*(j%7)+90*(j+i%4))
rotate(-90*j-90*(j+i%2))
rotate(90*(i+j)-90*(j+i%3))
rotate(90*(j%5)-90*(j+j%2))
if((i>=n/2&&j>=n/2)||(i<=n/2&&j<=n/2)){
rotate(-90);
}
if((i>n/2&&j<n/2)||(i<n/2&&j>n/2)){
rotate(180);
}
}
if (config ==63){
rotate(180*(j%7)+90*(j+j%4))
rotate(-90*j-90*(j+j%2))
rotate(90*(i+j)-90*(i+i%5))
rotate(90*(j%5)-90*(i+j%5))
}
if (config ==65){
rotate(90*(j%5)+90*(j+j%2))
rotate(-90*j-90*(j+j%2))
rotate(-90*(i+j)-90*(i+i%5))
rotate(90*(j%5)-90*(i+j%5))
}
if (config ==67){
rotate(90*(j%5)-90*(i+j%2))
rotate(90*j+90*(i+j%9))
rotate(-90*(i%2+j)-90*(i+i%5))
rotate(90*(j%3)-90*(i+j%9))
}
if (config ==69){
rotate(-90*(j%2)+-90*(i%3));
}
if (config ==71){
rotate(90*(j%3)+90*(i%5));
rotate(180*(i%3)+90*(j%5));
}
if (config ==73){
rotate(-90*(i%4-j)+90*(i%5));
rotate(180*(j%5+i)+90*(j%5));
}
if (config ==75){
rotate(-90*(i%4-j)+90*(i%5));
rotate(180*(j%5+i)+90*(j%5));
rotate(-90*(i%4-j)+90*(i%5));
rotate(180*(j%5+i)+90*(j%5));
}
if (config ==77){
rotate(-90*(i%4-j)+90*(i%7));
rotate(180*(j%6+i)+90*(j%3));
rotate(-90*(i%4-j)+90*(i%7));
rotate(180*(j%5+i)+90*(j%3));
}
if (config ==79){
rotate(-90*(i%4-j)+90*(i%7));
rotate(180*(j%6+i)+90*(j%3));
rotate(-90*(i%4-j)-90*(i%7));
rotate(180*(j%5+i)+90*(j%3));
}
if (config ==81){
rotate(-90*(i%4-j)+90*(i%7));
rotate(90*(j%6+i)+90*(j%3));
rotate(-90*(i%4-j)-90*(i%7));
rotate(180*(j%5+i)+90*(j%3));
}
if (config ==83){
rotate(-90*(i%4-j)+90*(i%5));
rotate(-90*(j%6+i)+90*(j%3));
rotate(-90*(i%5-j%2)-90*(i%4));
rotate(180*(j%5-i%3)+90*(j%3));
}
if (config ==85){
rotate(-90*(i%4-j)+90*(i%5));
rotate(-90*(j%6+i)+90*(j%3));
rotate(-90*(i%5-j%2)-90*(i%4));
rotate(90*(i%2-j%6)+90*(j%3));
}
if (config ==87){
rotate(-90*(i%4-j)+90*(i%5));
rotate(-90*(j%6+i)+90*(j%3));
rotate(-90*(i%5-j%2)-90*(i%4));
rotate(-90*(i%4-j)+90*(i%5));
rotate(-90*(j%6+i)+90*(j%3));
rotate(-90*(i%5-j%2)-90*(i%4));
}
if (config ==89){
rotate(-90*(i%2-j)+90*(i%5));
rotate(-90*(j%3+i)+90*(j%3));
rotate(-90*(i%4-j%2)-90*(i%4));
rotate(-90*(i%5-j)+90*(i%5));
rotate(-90*(j%6+i)+90*(j%3));
rotate(-90*(i%7-j%2)-90*(i%4));
}
if (config ==91){
rotate(-90*(i%5)-90*(j%2+i));
}
if (config ==93){
rotate(90*(i%4)-180*(j%2+i%7));
}
if (config ==95){
rotate(90*(j%3));
rotate(90*(i%3));
}
if (config ==97){
rotate(90*(j%3));
rotate(90*(i%3));
rotate(90*(j%3));
rotate(90*(i%3));
}
if (config ==99){
rotate(90*(j%4));
rotate(90*(i%5));
rotate(90*(j%2));
rotate(90*(i%5));
}
if (config ==101){
rotate(90*(j%5));
rotate(90*(i%5));
rotate(90*(j%2));
rotate(90*(i%2));
}
if (config ==103){
rotate(90*(j%5));
rotate(90*(i%5));
rotate(90*(j%4));
rotate(90*(i%4));
}
if (config ==105){
rotate(90*(j%3));
rotate(90*(i%3));
rotate(90*(j%4));
rotate(90*(i%4));
}
if (config ==107){
rotate(90*(i-j)+90*(j%3));
}
if (config == 108){
c=0;
}
}