correction de l'affichage objectif + tabObjCmp

correction-resultat
adplantade 5 years ago
parent 3e05533137
commit 349b24a9e6

@ -64,6 +64,7 @@
tabTotal=[]; tabTotal=[];
tabObjCmp=[]; tabObjCmp=[];
mousePos=[]; mousePos=[];
colorsAvailable=["red","yellow","green","purple"];
colors=["red","yellow","green","purple"]; colors=["red","yellow","green","purple"];
width=120; // 6 lignes de 50px width=120; // 6 lignes de 50px
@ -109,7 +110,6 @@
img.src="ress/"+color+".png"; img.src="ress/"+color+".png";
img.onload = function(){ img.onload = function(){
console.log("x:"+x+" y:"+y+" col:"+color);
lectx.drawImage(img,nx,ny,width/6,height/6); lectx.drawImage(img,nx,ny,width/6,height/6);
} }
@ -142,9 +142,10 @@
element[0]=-tmp; element[0]=-tmp;
}); });
} }
toutDessiner(letab,lecanvas,lectx);
empiler(sselem!=null);
if(sselem==null) if(sselem==null)
empiler(); toutDessiner(letab,lecanvas,lectx);
} }
function toutDessiner(pts,lecanvas,lectx) function toutDessiner(pts,lecanvas,lectx)
@ -152,8 +153,8 @@
lectx.clearRect(0, 0, lecanvas.width, lecanvas.height); lectx.clearRect(0, 0, lecanvas.width, lecanvas.height);
if(pts[0]) if(pts[0])
{ {
var i=1*(typeof pts[0]==="boolean");
for(i=1;i<pts.length;i++) for(i;i<pts.length;i++)
{ {
if(Array.isArray(pts[i])) if(Array.isArray(pts[i]))
{ {
@ -168,7 +169,7 @@
function empiler(obj=false) function empiler(obj=false)
{ {
const unique = (val) => val.toString() != test.toString(); const unique = (val) => val.toString() != test.toString();
exists=false; var exists=false;
if(!obj) if(!obj)
{ {
@ -177,12 +178,18 @@
{ {
tab1.forEach(element => { tab1.forEach(element => {
if(typeof element!= "boolean")
{
console.log(element.toString()+" n'est pas bool");
tabTotal.push(element); tabTotal.push(element);
}
}) })
} }
if(tab2[0]){ if(tab2[0]){
tab2.forEach(element => { tab2.forEach(element => {
if(typeof element!= "boolean")
{
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists) if(!exists)
@ -191,12 +198,14 @@
if(!exists) if(!exists)
tabTotal.push(element); tabTotal.push(element);
exists=false; exists=false;
}
}) })
} }
if(tab3[0]) if(tab3[0])
{ {
tab3.forEach(element => { tab3.forEach(element => {
if(typeof element!= "boolean"){
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists) if(!exists)
@ -205,11 +214,14 @@
if(!exists) if(!exists)
tabTotal.push(element); tabTotal.push(element);
exists=false; exists=false;
}
}) })
} }
if(tab4[0]){ if(tab4[0]){
tab4.forEach(element => { tab4.forEach(element => {
if(typeof element!= "boolean")
{
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists) if(!exists)
@ -218,17 +230,24 @@
if(!exists) if(!exists)
tabTotal.push(element); tabTotal.push(element);
exists=false; exists=false;
}
}) })
} }
checkAllOK(); checkAllOK();
toutDessiner(tabTotal,canvasT,ctxT); toutDessiner(tabTotal,canvasT,ctxT);
} }
else{ else{
tabObjCmp=[];
tabObj[0].forEach(element => { tabObj[0].forEach(element => {
if(typeof element!= "boolean")
{
tabObjCmp.push(element); tabObjCmp.push(element);
}
}) })
tabObj[1].forEach(element => { tabObj[1].forEach(element => {
if(typeof element!= "boolean")
{
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists) if(!exists)
@ -237,6 +256,36 @@
if(!exists) if(!exists)
tabObjCmp.push(element); tabObjCmp.push(element);
exists=false; exists=false;
}
})
tabObj[2].forEach(element => {
if(typeof element!= "boolean")
{
colors.forEach(col => {
test=[element[0],element[1],col];
if(!exists)
exists=!tabObjCmp.every(unique);
})
if(!exists)
tabObjCmp.push(element);
exists=false;
}
})
tabObj[3].forEach(element => {
if(typeof element!= "boolean")
{
colors.forEach(col => {
test=[element[0],element[1],col];
if(!exists)
exists=!tabObjCmp.every(unique);
})
if(!exists)
tabObjCmp.push(element);
exists=false;
}
}) })
} }
} }
@ -264,7 +313,7 @@
function generateEasy(){ function generateEasy(){
tabObj=[Array.from(tab1),Array.from(tab2),Array.from(tab3),Array.from(tab4)]; tabObj=[Array.from(tab1),Array.from(tab2),Array.from(tab3),Array.from(tab4)];
tabObjCmp=[]; tabObjCmp=[];
actions=getRandomInt(8); actions=getRandomInt(8)+1;
while(actions>0){ while(actions>0){
tourneD(tabObj,canvasO,ctxO,getRandomInt(4)-1); tourneD(tabObj,canvasO,ctxO,getRandomInt(4)-1);
@ -344,18 +393,22 @@
{ {
if((mousePos[1]=="N" && dir == "O") || (mousePos[1]=="S" && dir == "E") || (mousePos[1]=="O" && dir == "S") || (mousePos[1]=="E" && dir == "N")) if((mousePos[1]=="N" && dir == "O") || (mousePos[1]=="S" && dir == "E") || (mousePos[1]=="O" && dir == "S") || (mousePos[1]=="E" && dir == "N"))
{ {
console.log("G");
tourneG(letab,lecanvas,lectx); tourneG(letab,lecanvas,lectx);
} }
else if((mousePos[1] == "N" && dir == "E") || (mousePos[1] == "S" && dir == "O") || (mousePos[1] == "E" && dir == "S") || (mousePos[1] == "O" && dir == "N")) else if((mousePos[1] == "N" && dir == "E") || (mousePos[1] == "S" && dir == "O") || (mousePos[1] == "E" && dir == "S") || (mousePos[1] == "O" && dir == "N"))
{ {
console.log("D");
tourneD(letab,lecanvas,lectx); tourneD(letab,lecanvas,lectx);
} }
else if ((mousePos[1] == "E" && dir == "O") || (mousePos[1] == "O" && dir == "E")) else if ((mousePos[1] == "E" && dir == "O") || (mousePos[1] == "O" && dir == "E"))
{ {
console.log("V");
swap(letab,lecanvas,lectx,"V"); swap(letab,lecanvas,lectx,"V");
} }
else if ((mousePos[1] == "N" && dir == "S") || (mousePos[1] == "S" && dir == "N")) else if ((mousePos[1] == "N" && dir == "S") || (mousePos[1] == "S" && dir == "N"))
{ {
console.log("H");
swap(letab,lecanvas,lectx,"H"); swap(letab,lecanvas,lectx,"H");
} }
} }
@ -371,18 +424,23 @@
function checkAllOK(){ function checkAllOK(){
//const condition = (val) => val.toString() == element.toString(); //const condition = (val) => val.toString() == element.toString();
exists=true; var exists=true;
//exists=!tabObjCmp.every(unique); //exists=!tabObjCmp.every(unique);
console.log("---------------------------------");
if(tabTotal.length==tabObjCmp.length) if(tabTotal.length==tabObjCmp.length)
{ {
for(i=0;i>tabTotal.length;i++) console.log("bon nombre, tab total.l="+tabTotal.length);
for(i=0;i<tabTotal.length;i++)
{ {
exists*tabTotal[i].toString()==tabObjCmp[i].toString(); exists*tabTotal[i].toString()==tabObjCmp[i].toString();
console.log(tabTotal[i].toString()+"=="+tabObjCmp[i].toString()+" : "+exists);
} }
} }
else else
{
console.log("mauvais nombre");
exists=false; exists=false;
}
if(exists) if(exists)
{ {
@ -530,6 +588,9 @@
toutDessiner(tab3,canvas3,ctx3); toutDessiner(tab3,canvas3,ctx3);
toutDessiner(tab4,canvas4,ctx4); toutDessiner(tab4,canvas4,ctx4);
empiler();
toutDessiner(tabTotal,canvasT,ctxT);
//events(); //events();

Loading…
Cancel
Save