#include "svg.h"

void zig(int n, double d);
void zag(int n, double d);

int color;
int dcolor = 1;

void forwardPlus(double d) {
    forward(d);
    stroke(color = rotateH360(color, dcolor));
}

void zig(int n, double d) {
    if (n==1) {
        turn(90);
        forwardPlus(d);
        turn(90);
        forwardPlus(d);
    } else {
        zig(n/2, d);
        zag(n/2, d);
        zig(n/2, d);
        zag(n/2, d);
    }
}

void zag(int n, double d) {
    if (n==1) {
        turn(-90);
        forwardPlus(d);
        turn(-90);
        forwardPlus(d);
        turn(90);
        forwardPlus(d);
    } else {
        zag(n/2, d);
        zag(n/2, d);
        zig(n/2, d);
        zag(n/2, d);
    }
}

int main(void) {
    int d = 2.5;
    int n = 32;
        
    start();
    stroke(color = hsb360(0, 100, 100));
    strokeWeight(0.5);
    penUp();
    forwardPlus((n-0.5)*d);
    turn(-90);
    forwardPlus((n-0.5)*d);
    turn(90);
    penDown();
    zig(n, d);
    zig(n, d);
    finish();
    return 0;
}
