pisouvigne 5 years ago
parent 9af280448c
commit 66607aa1ad

@ -620,11 +620,8 @@
<script src="js/db.js"></script> <script src="js/db.js"></script>
<script src="js/generateGame.js"></script> <script src="js/generateGame.js"></script>
<script> <script>
var matchs = [[1, 3], [1, 2], [2, 2]];
var listePorteLogique = [[true, "et"], [true, "inv"], [true, "ou"]]; //getTest();
var col = [5, 3, 2];
generator(matchs, listePorteLogique, col);
getTest();
initAll(); initAll();
</script> </script>

@ -195,7 +195,7 @@ function createLine(points, id, end) {
} }
function createLink(entre, sortie) { function createLink(entre, sortie, infoId) {
//entre est une porte logique //entre est une porte logique
lineId = lineCount.length; lineId = lineCount.length;
lineCount.push(1); lineCount.push(1);
@ -233,6 +233,10 @@ function createLink(entre, sortie) {
case "logique": case "logique":
switch (whatIsElement(sortie)) { switch (whatIsElement(sortie)) {
case "logique": case "logique":
if (infoId === undefined || infoId === null) {
console.log('bug')
}
else if (infoId === 0) {
switch (giveLineId(sortie.name, entre)) { switch (giveLineId(sortie.name, entre)) {
case "id1": case "id1":
let switchMidX = entre.x + imageWidth; let switchMidX = entre.x + imageWidth;
@ -254,6 +258,27 @@ function createLink(entre, sortie) {
setLine(entre, "id3", "line" + lineId); setLine(entre, "id3", "line" + lineId);
break; break;
} }
} else {
if (infoId === "id1") {
let switchMidX = entre.x + imageWidth;
let switchMidY = entre.y + imageHeight / 2;
let logiqueMidX = sortie.x;
if (sortie.type === "inv") {
var logiqueMidY = sortie.y + (imageHeight / 2);
} else {
var logiqueMidY = sortie.y + (imageHeight / 3);
}
createLine([switchMidX, switchMidY, logiqueMidX, logiqueMidY], "line" + lineId);
setLine(sortie, "id1", "line" + lineId);
setLine(entre, "id3", "line" + lineId);
} else {
createLine([entre.x + imageWidth, entre.y + imageHeight / 2, sortie.x, sortie.y + (imageHeight / 3) * 2], "line" + lineId);
setLine(sortie, "id2", "line" + lineId);
setLine(entre, "id3", "line" + lineId);
}
}
break; break;
default: default:
endLines.push(lineId); endLines.push(lineId);
@ -389,6 +414,7 @@ function createLinkSwitch() {
} }
switchsInfo.splice(switchsInfo.indexOf(switchs), 1); switchsInfo.splice(switchsInfo.indexOf(switchs), 1);
createLink(stage.findOne("#" + switchs.id), findLogique(logique.name)); createLink(stage.findOne("#" + switchs.id), findLogique(logique.name));
} }

@ -1,5 +1,4 @@
function getTest() { function getTest() {
console.log("oui");
var xhttp; var xhttp;
xhttp = new XMLHttpRequest(); xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () { xhttp.onreadystatechange = function () {

@ -658,20 +658,6 @@ function nextLevel(mode) {
} }
} }
function calculNombreSwitch() {
var entrelibre = 0;
logiques.forEach(function (element) {
if (element.id1 == null) {
entrelibre++;
}
if (element.id2 == null && element.type != "inv") {
entrelibre++;
}
});
numberOfSwitch = entrelibre;
}
function resize() { function resize() {

@ -194,8 +194,19 @@ function calcul(launch) {
if (warning) if (warning)
WarningMessage(warning) WarningMessage(warning)
else WarningMessage(""); else WarningMessage("");
var listePorteLogique = [
[document.querySelector("#logique1").checked, "et"],
[document.querySelector("#logique2").checked, "ou"],
[document.querySelector("#logique3").checked, "inv"],
[document.querySelector("#logique4").checked, "etnon"],
[document.querySelector("#logique5").checked, "nonou"]
];
if (launch !== undefined && launch !== null && launch === true && error === null) { if (launch !== undefined && launch !== null && launch === true && error === null) {
generate2(col, matchs, fork); for (let i = 0; i < 200; i++) {
tentative = i;
if (generator(fork, col, listePorteLogique) === false)
break;
}
} }
} }
@ -441,7 +452,19 @@ function createGameOne(niveau) {
} }
function generator(matchs, listePorteLogique, col) { function generator(matchs, col, listePorteLogique) {
console.log(col)
var regen = false;
isTutoriel = false;
isTuto = false;
hideDiv(document.querySelector('#TestNouveauGenerateur'));
showDiv(document.querySelector('#playPage'));
resetAllTabs(false);
createStage("play_container");
stage.add(layer);
timeEnd = 999;
var groupes = []; var groupes = [];
var colCopy = []; var colCopy = [];
var links = []; var links = [];
@ -485,6 +508,7 @@ function generator(matchs, listePorteLogique, col) {
if (logique.col === i) logiqueCol.push(logique); if (logique.col === i) logiqueCol.push(logique);
}); });
//Création des liens //Création des liens
if (logiqueCol.length !== 0) {
matchs.forEach(function (element) { matchs.forEach(function (element) {
if (element[0] === i) { if (element[0] === i) {
//Selection de la sortie au hasard dans la colonne i //Selection de la sortie au hasard dans la colonne i
@ -511,6 +535,8 @@ function generator(matchs, listePorteLogique, col) {
}); });
} }
}); });
}
//Attribution des links aux orphelins : //Attribution des links aux orphelins :
var free = [], usedLogique = []; var free = [], usedLogique = [];
logiquesTemp.forEach(function (logique) { logiquesTemp.forEach(function (logique) {
@ -767,8 +793,10 @@ function generator(matchs, listePorteLogique, col) {
usedLogique.forEach(function (uLogique) { usedLogique.forEach(function (uLogique) {
if (uLogique[0] === logique.id) isOk = false; if (uLogique[0] === logique.id) isOk = false;
}); });
if (isOk) if (isOk) {
isLogiqueFree.push("id1"); isLogiqueFree.push("id1");
}
} else { } else {
var isId1 = true; var isId1 = true;
var isId2 = true; var isId2 = true;
@ -786,8 +814,12 @@ function generator(matchs, listePorteLogique, col) {
} }
}); });
if (isId1) isLogiqueFree.push("id1"); if (isId1) {
if (isId2) isLogiqueFree.push("id2"); isLogiqueFree.push("id1");
}
if (isId2) {
isLogiqueFree.push("id2");
}
} }
} }
isLogiqueFree.forEach(function (id) { isLogiqueFree.forEach(function (id) {
@ -842,6 +874,7 @@ function generator(matchs, listePorteLogique, col) {
}); });
if (isAllowed) { if (isAllowed) {
newGroupe.push([fr[0], fr[1]]); newGroupe.push([fr[0], fr[1]]);
usedLogique.push([fr[0], fr[1]]);
count++; count++;
} }
} }
@ -859,6 +892,7 @@ function generator(matchs, listePorteLogique, col) {
}); });
if (isAllowed) { if (isAllowed) {
newGroupe.push([fr[0], fr[1]]); newGroupe.push([fr[0], fr[1]]);
usedLogique.push([fr[0], fr[1]]);
count++; count++;
} }
} }
@ -867,15 +901,98 @@ function generator(matchs, listePorteLogique, col) {
} }
//Problème retour en arrière : //Problème retour en arrière :
else { else {
console.log("gros problème") regen = true;
/*console.log("gros problème");
console.log("0 : " + number0);
console.log("1 : " + number1);
console.log("colonne : " + i);
console.log("Demandé : " + element[1] + " colonne : " + element[0]);
logiquesTemp.forEach(function (logique) {
if (logique.col = col.length) {
}
if (logique.col === i)
console.log(logique);
});*/
/*
//On prend le plus grand :
//1
if (number1 >= number0) {
//check si il y a des logiques complétements vide
var free0 = [];
var isFullEmpty = [];
free.forEach(function (fr) {
if (fr[2] === 0)
free0.push(fr);
});
free.forEach(function (fr) {
free0.forEach(function (fr0) {
if (fr[0] === fr0[0] && fr[2] !== 0)
isFullEmpty.push(fr[0])
})
});
//Changement de type du complétement vide
isFullEmpty.forEach(function (logiqueId) {
logiquesTemp.forEach(function (logique) {
if (logique.id === logiqueId) {
if (logique.id3 === 1) {
switch (logique.type) {
case "et":
type.id1 = 1;
type.id2 = 1;
break;
case "ou":
type.id1 = 1;
type.id2 = 1;
break;
}
}
}
console.log(logique.id + " : " + logique.type)
});
});
}
//0
else {
}*/
} }
groupes.push(newGroupe); groupes.push(newGroupe);
} }
}); });
} }
console.log(col); if (!regen) {
console.log(logiquesTemp); //Génération de la vue
console.log(links); initTimer();
colonneTot = col.length;
tempMatchs = [];
tempFork = [];
for (let i = 0; i < matchs.length; i++)
tempMatchs[i] = matchs[i];
for (let i = 0; i < matchs.length; i++)
tempFork[i] = matchs[i - 1];
tempCol = col;
colonneTot = col.length;
for (let i = 0; i < colonneTot; i++) {
var pos = 0;
logiquesTemp.forEach(function (logique) {
if (logique.col - 1 === i) {
createLogique(stage.width() / (colonneTot + 1) * (i + 1), (stage.height() / col[i] / 2 - imageHeight) + (stage.height() / 1.5 / col[i] * pos), logique.id, logique.type)
pos++;
}
});
}
links.forEach(function (link) {
if (link[1] !== "end")
createLink(findLogique(link[0]), findLogique(link[1]), link[2]);
});
initEndGame();
//createLink(findLogique("logique5"), findLogique("logique1"))
}
return regen;
} }

@ -16,11 +16,11 @@ function initAllSwitch(mode) {
document.body.style.cursor = "default"; document.body.style.cursor = "default";
}); });
//faire le random de l'inversion de switch //faire le random de l'inversion de switch
if (getRandomArbitrary(0, 3) == 1) { //if (getRandomArbitrary(0, 3) == 1) {
activeSwitch(switche.id()); //activeSwitch(switche.id());
//if (checkIfEnd()) //if (checkIfEnd())
//activeSwitch(switche.id()); //activeSwitch(switche.id());
} //}
}); });
} }

@ -114,12 +114,10 @@ function initEndGame(mode) {
switchCreator(numberOfSwitch); switchCreator(numberOfSwitch);
createAllLinkSwitch(); createAllLinkSwitch();
initAllSwitch(mode); initAllSwitch(mode);
/*logiques.forEach(function (element) {
logiques.forEach(function (element) {
checkEntreCroisement(element.name); checkEntreCroisement(element.name);
}); });*/
createEnd(); createEnd();
initEnd(); initEnd();

Loading…
Cancel
Save