let numbers = [];
let nStore;
let nRuns = 0;
function setup() {
createCanvas(500, 500);
numbers = [];
frameRate(5);
for (let i = 1; i <= 100; i++) {
numbers[i - 1] = { n: BigInt(i), c: i * 2 };
}
d = 5;
n = d;
while (numbers.length > 1) {
s = int(random(0, numbers.length - 1));
numbers[s].n =
numbers[s].n + numbers[s + 1].n + numbers[s].n * numbers[s + 1].n;
numbers.splice(s + 1, 1);
}
fill(0);
noStroke();
nStore = numbers[0].n;
textSize(5.5);
console.log(nStore);
}
function draw() {
background(255, 255, 255, 50);
nRuns++;
numbers = [];
for (let i = 1; i <= 100; i++) {
numbers[i - 1] = { n: BigInt(i), c: i * 2 };
}
n = d;
while (numbers.length > 1) {
s = int(random(0, numbers.length - 1));
numbers[s].n =
numbers[s].n + numbers[s + 1].n + numbers[s].n * numbers[s + 1].n;
numbers.splice(s + 1, 1);
for (let i = 0; i < numbers.length; i++) {
fill(numbers[i].c, numbers[i].c * 1.1, numbers[i].c * 1.3, 150);
rect(d / 2 + d * i, n + d, d * 0.9);
circle(
width / 2 - (n / 2) * cos((PI / 100) * numbers[i].c),
height / 2 - (n / 2) * sin((PI / 100) * numbers[i].c),
2
);
}
n += 4.8;
}
textSize(5.5);
fill(0);
text(numbers[0].n, 2, height - 10);
if (nStore != numbers[0].n) {
console.log(diff);
noLoop();
}
nStore = numbers[0].n;
textSize(10);
fill(255);
rect(width - 50, height - 60, 80, 30);
fill(0);
text("runs = " + nRuns, width - 50, height - 50);
}