xxxxxxxxxx
function setup() {
createCanvas(windowWidth, windowHeight);
background(255);
frameRate(2**N/10);
rectMode(CENTER);
colorMode(HSB,1,1,1);
stroke(0,0,1);
x = windowWidth/4
y = windowHeight*0.75
h = windowWidth/(4*N);
w = x/(N+2);
console.log(ops.length)
}
colors = []
var N = 8;
var ops = hanoi(N,1,3);
var t = 0;
var mat = [[],[],[]]
for (var i = N-1; i >= 0; i--) mat[0].push(i+1);
var x;
var y;
var h;
var w;
var animations = []
function draw() {
if (t <= ops.length) {
background(255);
for (var i = 0; i < 3; i++) {
for (var j = 0; j < mat[i].length; j++) {
fill(mat[i][j]/N,0.8,1);
rect(x*(i+1), y-j*h, w + w*mat[i][j], h, 5);
}
}
if (t < ops.length) {
var s = ops[t][0];
var e = ops[t][1];
mat[e-1].push(mat[s-1].pop())
}
}
t += 1
}
function hanoi(n,s,e) {
if (n==0) return []
else return [hanoi(n-1,s,6-s-e), [s,e], hanoi(n-1,6-s-e,e)]
}
255