correction dans rotationManager, gère correctement le clic

visibilité-cartes
adplantade 5 years ago
parent 0ef4b1d167
commit 7c56070d47

@ -37,7 +37,7 @@
var canvasO = document.getElementById('canvasObj'); var canvasO = document.getElementById('canvasObj');
var ctxO = canvasO.getContext('2d'); var ctxO = canvasO.getContext('2d');
var canvasR = document.getElementById('canvasR'); var canvasR = document.getElementById('canvasR');
//var ctxR = canvasR.getContext('2d'); //var ctxR = canvasR.getContext('2d');
@ -70,8 +70,8 @@
function faireCercle(x,y,color,lectx){ function faireCercle(x,y,color,lectx){
var cercle = new Path2D(); var cercle = new Path2D();
nx=(width/6)*(x>0 ? x+2 : x+3); nx=(width/6)*(x>0 ? x+2 : x+3);
ny=(height/6)*(y>0 ? y+2 : y+3); ny=(height/6)*(y>0 ? y+2 : y+3);
@ -130,7 +130,7 @@
faireCercle(pts[i][0],pts[i][1],pts[i][2],lectx); faireCercle(pts[i][0],pts[i][1],pts[i][2],lectx);
} }
else else
faireCercle(pts[i][0],pts[i][1],pts[i][2],lectx); faireCercle(pts[i][0],pts[i][1],pts[i][2],lectx);
} }
} }
/* /*
@ -155,50 +155,50 @@
tabTotal=[]; tabTotal=[];
if(tab1[0]) if(tab1[0])
{ {
tab1.forEach(element => { tab1.forEach(element => {
tabTotal.push(element); tabTotal.push(element);
}) })
} }
if(tab2[0]){ if(tab2[0]){
tab2.forEach(element => { tab2.forEach(element => {
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists)
exists=!tabTotal.every(unique);
})
if(!exists) if(!exists)
exists=!tabTotal.every(unique); tabTotal.push(element);
exists=false;
}) })
if(!exists)
tabTotal.push(element);
exists=false;
})
} }
if(tab3[0]) if(tab3[0])
{ {
tab3.forEach(element => { tab3.forEach(element => {
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists)
exists=!tabTotal.every(unique);
})
if(!exists) if(!exists)
exists=!tabTotal.every(unique); tabTotal.push(element);
exists=false;
}) })
if(!exists)
tabTotal.push(element);
exists=false;
})
} }
if(tab4[0]){ if(tab4[0]){
tab4.forEach(element => { tab4.forEach(element => {
colors.forEach(col => { colors.forEach(col => {
test=[element[0],element[1],col]; test=[element[0],element[1],col];
if(!exists)
exists=!tabTotal.every(unique);
})
if(!exists) if(!exists)
exists=!tabTotal.every(unique); tabTotal.push(element);
exists=false;
}) })
if(!exists)
tabTotal.push(element);
exists=false;
})
} }
checkAllOK(); checkAllOK();
toutDessiner(tabTotal,canvasT,ctxT); toutDessiner(tabTotal,canvasT,ctxT);
@ -288,36 +288,39 @@
function rotationManager(e) function rotationManager(e)
{ {
canvasNumber=e.currentTarget.id.substring(6); canvasNumber=e.currentTarget.id.substring(6);
lecanvas=eval("canvas"+canvasNumber); if(canvasNumber=="R")
letab=eval("tab"+canvasNumber);
lectx=lecanvas.getContext('2d');
dir = compas(e.clientX,e.clientY,e.currentTarget);
if(mousePos[0]==canvasNumber)
{
if((mousePos[1]=="N" && dir == "O") || (mousePos[1]=="S" && dir == "E") || (mousePos[1]=="O" && dir == "S") || (mousePos[1]=="E" && dir == "N"))
{
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"))
{
tourneD(letab,lecanvas,lectx);
}
else if ((mousePos[1] == "E" && dir == "O") || (mousePos[1] == "O" && dir == "E"))
{
swap(letab,lecanvas,lectx,"V");
}
else if ((mousePos[1] == "N" && dir == "S") || (mousePos[1] == "S" && dir == "N"))
{
swap(letab,lecanvas,lectx,"H");
}
}
else if(canvasNumber=="R")
{ {
toggleVisible(mousePos[0]); toggleVisible(mousePos[0]);
} }
else else
{ {
changeOrder(mousePos[0],canvasNumber); lecanvas=eval("canvas"+canvasNumber);
letab=eval("tab"+canvasNumber);
lectx=lecanvas.getContext('2d');
dir = compas(e.clientX,e.clientY,e.currentTarget);
if(mousePos[0]==canvasNumber)
{
if((mousePos[1]=="N" && dir == "O") || (mousePos[1]=="S" && dir == "E") || (mousePos[1]=="O" && dir == "S") || (mousePos[1]=="E" && dir == "N"))
{
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"))
{
tourneD(letab,lecanvas,lectx);
}
else if ((mousePos[1] == "E" && dir == "O") || (mousePos[1] == "O" && dir == "E"))
{
swap(letab,lecanvas,lectx,"V");
}
else if ((mousePos[1] == "N" && dir == "S") || (mousePos[1] == "S" && dir == "N"))
{
swap(letab,lecanvas,lectx,"H");
}
}
else
{
changeOrder(mousePos[0],canvasNumber);
}
} }
} }
@ -335,7 +338,7 @@
} }
} }
else else
exists=false; exists=false;
if(exists) if(exists)
{ {
@ -343,7 +346,7 @@
generateEasy(); generateEasy();
} }
} }
function changeOrder(from, to) function changeOrder(from, to)
{ {
fromTab=eval("tab"+from); fromTab=eval("tab"+from);
@ -351,15 +354,15 @@
for(i=0;i<toTab.length;i++) for(i=0;i<toTab.length;i++)
{ {
[fromTab[i],toTab[i]]=[toTab[i],fromTab[i]]; [fromTab[i],toTab[i]]=[toTab[i],fromTab[i]];
} }
//[fromTab,toTab]=[toTab,fromTab]; //[fromTab,toTab]=[toTab,fromTab];
toutDessiner(fromTab,eval("canvas"+from),eval("ctx"+from)); toutDessiner(fromTab,eval("canvas"+from),eval("ctx"+from));
toutDessiner(toTab,eval("canvas"+to),eval("ctx"+to)); toutDessiner(toTab,eval("canvas"+to),eval("ctx"+to));
} }
function toggleVisible(where) function toggleVisible(where)
{ {
eval("tab"+where+"[0]=!tab"+where+"[0];"); eval("tab"+where+"[0]=!tab"+where+"[0];");
@ -400,24 +403,24 @@
canvas4.addEventListener("mouseup",function(e){ canvas4.addEventListener("mouseup",function(e){
rotationManager(e); rotationManager(e);
}) })
canvasR.addEventListener("mouseup",function(e){ canvasR.addEventListener("mouseup",function(e){
rotationManager(e); rotationManager(e);
}) })
/* /*
tab1.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]); tab1.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]);
tab2.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]); tab2.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]);
tab3.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]); tab3.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]);
tab4.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]); tab4.push([-3,-3,"green"],[-3,2,"red"],[1,2,"blue"],[3,-3,"brown"]);
*/ */
tab1.push(true,[-1,-1,"green"],[-2,-2,"red"]); tab1.push(true,[-1,-1,"green"],[-2,-2,"red"]);
tab2.push(true,[-1,-1,"green"],[-2,-2,"red"]); tab2.push(true,[-1,-1,"green"],[-2,-2,"red"]);
tab3.push(true,[-1,-1,"green"],[-2,-2,"red"]); tab3.push(true,[-1,-1,"green"],[-2,-2,"red"]);
tab4.push(true,[-1,-1,"green"],[-2,-2,"red"]); tab4.push(true,[-1,-1,"green"],[-2,-2,"red"]);
toutDessiner(tab1,canvas1,ctx1); toutDessiner(tab1,canvas1,ctx1);
toutDessiner(tab2,canvas2,ctx2); toutDessiner(tab2,canvas2,ctx2);

Loading…
Cancel
Save