xxxxxxxxxx
142
/*
based on https://editor.p5js.org/jgmy/sketches/c1u819TPy
TO DO:
Insert multiplications into n array so we mark which values
are already known.
I.E. Scores[100] (1x1 to 10x10)
If Score for that multiplication is big, remove it from the
list of questions.
*/
var intentos=0;
var aciertos=0;
var seguidos=0;
var Val1=1, Val2=1;
var cnv;
function generaopcion(arr){
valido=0;
var colgado=0;
while (valido==0) {
colgado++;
nuevaRespuesta=int(random(Val1-1,Val1+2))*int(random(Val2-1,Val2+1));
valido=1;
for(var i=0;i<arr.length;i++){
if (nuevaRespuesta==arr[i]) valido=0;
}
if (colgado>20) break;
}
arr.push(nuevaRespuesta);
}
function piezaLego(){
cnv.push();
cnv.box(40,40,40);
cnv.translate(0,0,25);
cnv.rotateX(HALF_PI);
cnv.cylinder(20,10);
cnv.pop();
}
function setup() {
cnv=createGraphics(400, 400,WEBGL);
createCanvas(400,400,P2D);
textFont("Arial");
textSize(12);
}
var Bueno=0;
function draw() {
if (Bueno==0){
Bueno=1;
cnv=createGraphics(400, 400,WEBGL);
cnv.background(220);
Val1=int(random(1,10));
Val2=int(random(10));
cnv.ambientLight(60,60,60);
cnv.pointLight(255, 255, 255, cnv.width/2, cnv.height/2, 100);
cnv.noStroke();
//cnv.normalMaterial();
cnv.push();
cnv.rotateX(QUARTER_PI);
cnv.rotateZ(QUARTER_PI);
cnv.translate(-400,-400,0);
for (var g=0;g<Val2;g++){
switch(g % 6){
case 0:
cnv.fill(255,0,0); break;
case 1:
cnv.fill(200,0,200);break;
case 2:
cnv.fill(0,0,255);break;
case 3:
cnv.fill(0,200,200);break;
case 4:
cnv.fill(0,255,0);break;
case 5:
cnv.fill(200,200,0);break;
}
cnv.translate(40,0,0);
cnv.push();
for (var f=0;f<Val1;f++){
cnv.translate(0,40,0);
piezaLego();
}
cnv.pop();
}
cnv.pop();
image(cnv,0,0);
//background(200,200,255);
textSize(12);
textAlign(CENTER);
text("Aciertos:"+aciertos+" (Racha: "+seguidos+") Intentos:"+intentos,width/2,height-30);
textSize(24);
textAlign(CENTER);
text("Cuánto es "+Val1+"×"+Val2,height/2,width/2);
respuestas=[];
respuestas.push(Val1*Val2);
generaopcion(respuestas);
generaopcion(respuestas);
shuffle(respuestas,true);
var button=[];
for (bt=0;bt<3;bt++){
var b=createButton(""+respuestas[bt]);
b.position=bt*(width/3);
b.size(width/3-2,textAscent()+textDescent());
button.push(b);
if ( respuestas[bt]==(Val1*Val2 )){
b.mousePressed(goodtest);
} else {
b.mousePressed(badtest);
}
}
}
}
function goodtest(){
intentos++;
aciertos++;
seguidos++;
Bueno=0;
window.alert("BIEN!!");
let buttons=selectAll("button");
removeElements();
}
function badtest() {
intentos++;
seguidos=0;
Bueno=0;
window.alert("MAL!!");
removeElements();
}