diff --git a/site/vue/js/func.js b/site/vue/js/func.js index a66f1ff..5541d4e 100644 --- a/site/vue/js/func.js +++ b/site/vue/js/func.js @@ -269,7 +269,6 @@ function checkEntreCroisement(logiqueId) { let logique = findLogique(logiqueId); if (logique.id1 != null && logique.id2 != null) { if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) { - if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) { let switch1 = getSwitchFromLine(logique.id1).id; let switch2 = getSwitchFromLine(logique.id2).id; @@ -444,6 +443,66 @@ function isLineCollapsing() { return isCollapsing; } +function invertLine() { + logiques.forEach(function (logique) { + if (logique.type !== "inv") { + var distance1; + var distance2; + if (getLogiqueFromLine(logique.id1) === null) + distance1 = getSwitchFromLine(logique.id1).y; + else distance1 = getLogiqueFromLine(logique.id1).y; + if (getLogiqueFromLine(logique.id2) === null) + distance2 = getSwitchFromLine(logique.id2).y; + else distance2 = getLogiqueFromLine(logique.id2).y; + if (distance2 < distance1) { + console.log("croisement pour " + logique.name + " " + logique.type); + + if (getLogiqueFromLine(logique.id1) === null && getLogiqueFromLine(logique.id2) === null) { + let switch1Id = getSwitchFromLine(logique.id1).id; + let switch2Id = getSwitchFromLine(logique.id2).id; + removeLine(logique.id1); + removeLine(logique.id2); + logique.id1 = null; + logique.id2 = null; + createLink(stage.findOne("#" + switch2Id), logique); + createLink(stage.findOne("#" + switch1Id), logique); + } else if (getLogiqueFromLine(logique.id1) === null && getLogiqueFromLine(logique.id2) !== null) { + let switch1Id = getSwitchFromLine(logique.id1).id; + let logique2 = getLogiqueFromLine(logique.id2); + removeLine(logique.id1); + removeLine(logique.id2); + logique.id1 = null; + logique.id2 = null; + createLink(stage.findOne("#" + switch1Id), logique); + createLink(logique2, logique); + } else if (getLogiqueFromLine(logique.id1) !== null && getLogiqueFromLine(logique.id2) === null) { + let switch2Id = getSwitchFromLine(logique.id2).id; + let logique1 = getLogiqueFromLine(logique.id1); + removeLine(logique.id1); + removeLine(logique.id2); + logique.id1 = null; + logique.id2 = null; + createLink(logique1, logique); + createLink(stage.findOne("#" + switch2Id), logique); + } else if (getLogiqueFromLine(logique.id1) !== null && getLogiqueFromLine(logique.id2) !== null) { + let logique1 = getLogiqueFromLine(logique.id1); + let logique2 = getLogiqueFromLine(logique.id2); + removeLine(logique.id1); + removeLine(logique.id2); + logique.id1 = null; + logique.id2 = null; + createLink(logique1, logique); + createLink(logique2, logique); + } + } + + + + } + }); + +} + function getLogiqueByLine(idLine) { var logique = null; logiques.forEach(function (element) { diff --git a/site/vue/js/generateGame.js b/site/vue/js/generateGame.js index 288d894..04c8d22 100644 --- a/site/vue/js/generateGame.js +++ b/site/vue/js/generateGame.js @@ -290,7 +290,7 @@ function createGameOne(niveau) { numberColonne2 = 1; timeEnd = 20; break; - //Fin premiere serie + //Fin premiere serie case 5: firstTime.push("inv"); isNotAllowed = true; @@ -581,7 +581,7 @@ function generate2(col, matchs, fork) { } } initEndGame(); - isLineCollapsing(); + invertLine(); checkAllSortieLogique(); }