static final String SET_NAME = "EG-1";
int[][] bySubset = { // { total, mastered, in-progress (number of algs learned but not well; it takes some thinking to remember which alg) }
{6,6,0}, //S
{6,3,3}, //S'
{6,0,0}, //π
{6,0,0}, //T
{6,0,0}, //U
{6,0,0}, //L
{4,0,0}, //H
{3,1,0} //O
};
String[] subsetNames = {
"S",
"S'",
"π",
"T",
"U",
"L",
"H",
"O"
};
int algsTotal = 0;
int algsMastered = 0;
int algsInProgress = 0;
void setup() {
size(500, 500);
for(int i = 0; i < bySubset.length; i++) {
algsTotal += bySubset[i][0];
algsMastered += bySubset[i][1];
algsInProgress += bySubset[i][2];
}
}
void draw() {
background(0);
noStroke();
fill(255);
textAlign(LEFT, TOP);
textSize(20);
text("Algs total: " + algsTotal, 2, 52);
fill(255, 0, 0);
rect(0, 0, width, 50);
text("Algs left to learn: " + (algsTotal - algsMastered - algsInProgress), 2, 72);
fill(255, 255, 0);
rect(0, 0, map(algsMastered+algsInProgress, 0, algsTotal, 0, width), 50);
text("Algs in-progress: " + algsInProgress, 2, 92);
fill(0, 255, 0);
rect(0, 0, map(algsMastered, 0, algsTotal, 0, width), 50);
text("Algs mastered: " + algsMastered, 2, 112);
fill(255);
text("By Subset:", 2, 142);
for(int i = 0; i < bySubset.length; i++) {
fill(255);
text(subsetNames[i] + ": " + bySubset[i][0] + " total, " + bySubset[i][1] + " mastered, " + bySubset[i][2] + " in-progress", 2, 162 + 20*i);
fill(255, 0, 0);
rect(370, 165 + 20*i, 100, 15);
fill(255, 255, 0);
rect(370, 165 + 20*i, map(bySubset[i][1]+bySubset[i][2], 0, bySubset[i][0], 0, 100), 15);
fill(0, 255, 0);
rect(370, 165 + 20*i, map(bySubset[i][1], 0, bySubset[i][0], 0, 100), 15);
}
fill(255);
textSize(15);
text("In-progress means learned but not learned very well.", 2, 182 + 20*bySubset.length);
fill(0);
textSize(40);
text(SET_NAME + ": " + (float)round(1000*((float)(algsInProgress+algsMastered)/algsTotal))/10 + "% learned", 2, 5);
save(SET_NAME + ".png");
}