From 091cfa7ea4581289b99508b04c57db724f97639a Mon Sep 17 00:00:00 2001 From: pisouvigne Date: Fri, 10 Jul 2020 17:07:29 +0200 Subject: [PATCH] gen --- site/vue/js/func.js | 61 ++++++++++++++++++++++++++++++++++++- site/vue/js/generateGame.js | 4 +-- 2 files changed, 62 insertions(+), 3 deletions(-) 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(); }