|
|
@ -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);
|
|
|
|