fix de quelques trucs

master
pisouvigne 5 years ago
parent be69070088
commit 161a1be91e

@ -23,7 +23,7 @@
</div> </div>
<hr id="hr"> <hr id="hr">
<div id="selectionContainer"> <div id="selectionContainer">
<div class="border background dys listenerHover" onclick="wait('normal', this)"> <div class="border background dys listenerHover" onclick="wait('tuto', this)">
<a>Tutoriel</a> <a>Tutoriel</a>
<i class="fa fa-arrow-right" id="right_select" aria-hidden="true"></i> <i class="fa fa-arrow-right" id="right_select" aria-hidden="true"></i>
</div> </div>
@ -103,7 +103,8 @@
<p class="dys"><a class="txt" id="successInfo"></a><a id="click_number"></a><a> click(s)</a> <p class="dys"><a class="txt" id="successInfo"></a><a id="click_number"></a><a> click(s)</a>
</p> </p>
<div id="show_stage" class="border"></div><br> <div id="show_stage" class="border"></div><br>
<div class="border background dys listenerHover" onclick="closeModal('success');nextLevel();""> <div class="border background dys listenerHover" id="next_level_button"
onclick="closeModal('success');nextLevel();"">
<a>Niveau suivant</a> <a>Niveau suivant</a>
<i class=" fa fa-arrow-right" id="right_select" aria-hidden="true"></i> <i class=" fa fa-arrow-right" id="right_select" aria-hidden="true"></i>
</div><br><br> </div><br><br>
@ -495,7 +496,10 @@
<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>
generateFromBottom();
initAll(); initAll();
</script> </script>

@ -63,3 +63,5 @@ var click = 0;
var successPanel = true; var successPanel = true;
var arrayPorte = []; var arrayPorte = [];
const NOMBRETEST = 500;

@ -212,6 +212,7 @@ function checkEntreCroisement(logiqueId) {
let logique = findLogique(logiqueId); let logique = findLogique(logiqueId);
if (logique.id1 != null && logique.id2 != null) { if (logique.id1 != null && logique.id2 != null) {
if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) { if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) {
if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) { if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
let switch1 = getSwitchFromLine(logique.id1).id; let switch1 = getSwitchFromLine(logique.id1).id;
let switch2 = getSwitchFromLine(logique.id2).id; let switch2 = getSwitchFromLine(logique.id2).id;
@ -232,8 +233,32 @@ function checkEntreCroisement(logiqueId) {
logique.id2 = null; logique.id2 = null;
createLink(logique1, logique); createLink(logique1, logique);
createLink(logique2, logique); createLink(logique2, logique);
}
else if (getSwitchFromLine(logique.id1) != null && getLogiqueFromLine(logique.id2) != null) {
let logique1 = getLogiqueFromLine(logique.id2);
let switch1 = getSwitchFromLine(logique.id1).id;
removeLine(logique.id1);
removeLine(logique.id2);
logique.id1 = null;
logique.id2 = null;
createLink(logique1, logique);
createLink(stage.findOne("#" + switch1), logique);
}
else if (getLogiqueFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
let logique1 = getLogiqueFromLine(logique.id1);
let switch1 = getSwitchFromLine(logique.id2).id;
removeLine(logique.id1);
removeLine(logique.id2);
logique.id1 = null;
logique.id2 = null;
createLink(stage.findOne("#" + switch1), logique);
createLink(logique1, logique);
} }
croisement = true; else {
croisement = true;
}
} }
} }
return croisement; return croisement;
@ -360,13 +385,12 @@ function isLineCollapsing() {
switchsInfoCopy.forEach(function (element) { switchsInfoCopy.forEach(function (element) {
element.id3.forEach(function (line) { element.id3.forEach(function (line) {
if (Math.abs(element.y - stage.findOne("#" + line).points()[7]) > distance) { if (Math.abs(element.y - stage.findOne("#" + line).points()[7]) > distance) {
console.log(element.name);
isCollapsing = true; isCollapsing = true;
} }
}) })
}); });
} }
return false; return isCollapsing;
} }
function getRandomArbitrary(min, max) { function getRandomArbitrary(min, max) {
@ -408,7 +432,7 @@ function checkIfEnd() {
return ter; return ter;
} }
function checkEnd() { function checkEnd(mode) {
let ter = true; let ter = true;
endLines.forEach(function (element) { endLines.forEach(function (element) {
if (stage.findOne("#line" + element).stroke() == colorLineInnactive) { if (stage.findOne("#line" + element).stroke() == colorLineInnactive) {
@ -417,11 +441,11 @@ function checkEnd() {
} }
}); });
if (ter && !isTuto) { if (ter && !isTuto) {
setTimeout(() => { success(); }, 100); setTimeout(() => { success(mode); }, 100);
} }
} }
function success() { function success(mode) {
timeTot = timeTot + timer.getTimeValues().seconds; timeTot = timeTot + timer.getTimeValues().seconds;
timer.stop(); timer.stop();
stage.findOne("#end").fill("yellow"); stage.findOne("#end").fill("yellow");
@ -429,6 +453,7 @@ function success() {
if (successPanel) { if (successPanel) {
openModal("success"); openModal("success");
document.querySelector("#click_number").innerHTML = click; document.querySelector("#click_number").innerHTML = click;
document.querySelector("#next_level_button").onclick = function () { closeModal('success'); nextLevel(mode); }
var previewStage = new Konva.Stage({ var previewStage = new Konva.Stage({
container: 'show_stage', container: 'show_stage',
width: window.innerWidth / 1.5, width: window.innerWidth / 1.5,
@ -440,7 +465,7 @@ function success() {
previewStage.add(previewLayer); previewStage.add(previewLayer);
previewLayer.batchDraw(); previewLayer.batchDraw();
} else { } else {
setTimeout(() => { nextLevel(); }, 1000); setTimeout(() => { nextLevel(mode); }, 1000);
} }
} }
@ -449,9 +474,13 @@ function successCheck() {
else successPanel = false; else successPanel = false;
} }
function nextLevel() { function nextLevel(mode) {
niveauActuel++; niveauActuel++;
launchGameOne(); if (mode != undefined && mode != null && mode === "tuto") {
launchTuto();
} else {
launchGameOne();
}
} }
function calculNombreSwitch() { function calculNombreSwitch() {
@ -577,13 +606,19 @@ function modePerso() {
showDiv(document.querySelector("#PersoSetupPage")); showDiv(document.querySelector("#PersoSetupPage"));
} }
function playNormal() { function playNormal() {
hideDiv(document.querySelector("#levelSelectionPage")); hideDiv(document.querySelector("#levelSelectionPage"));
showDiv(document.querySelector("#playPage")); showDiv(document.querySelector("#playPage"));
niveauActuel = 1; niveauActuel = 1;
timeTot = 0; timeTot = 0;
launchGameOne(); launchGameOne();
} }
function modeTuto() {
hideDiv(document.querySelector("#levelSelectionPage"));
showDiv(document.querySelector("#playPage"));
niveauActuel = 1;
timeTot = 0;
launchTuto();
}
function wait(mode, btn) { function wait(mode, btn) {
var time = 300; var time = 300;
spin(btn); spin(btn);
@ -594,6 +629,9 @@ function wait(mode, btn) {
case "perso": case "perso":
setTimeout(modePerso, time); setTimeout(modePerso, time);
break; break;
case "tuto":
setTimeout(modeTuto, time);
break;
} }
} }
@ -654,6 +692,13 @@ function launchGameOne() {
resetAllTabs(false); resetAllTabs(false);
gameOne(); gameOne();
} }
function launchTuto() {
document.querySelector(".niveau").innerHTML = niveauActuel;
timer.stop();
timer.reset();
resetAllTabs(false);
tuto();
}
function clearArray(arr) { function clearArray(arr) {
while (arr.length > 0) { while (arr.length > 0) {

@ -51,7 +51,6 @@ function loadPerso() {
colonneTot = 0; colonneTot = 0;
while (porteTotal > 2) { while (porteTotal > 2) {
porteTotal = porteTotal / 2; porteTotal = porteTotal / 2;
console.log(porteTotal);
numberPerColonne.push(porteTotal); numberPerColonne.push(porteTotal);
colonneTot++; colonneTot++;
} }
@ -66,10 +65,22 @@ function loadPerso() {
} }
arrayPorte = arrayPorte.filter(function (e) { if (e[0] === true) return e; }) arrayPorte = arrayPorte.filter(function (e) { if (e[0] === true) return e; })
generate_perso_level(); generate_perso_level();
isLineCollapsing()
click = 0; click = 0;
while (checkIfEnd() || isLineCollapsing()) { let i = 0;
var error = false;
while (checkIfEnd()) {
if (i === NOMBRETEST) {
error = true;
break;
}
resetAllTabs(false); resetAllTabs(false);
generate_perso_level(); generate_perso_level();
isLineCollapsing();
i++;
}
if (error) {
document.location.reload(true);
} }
} }
function spin(button) { function spin(button) {
@ -83,6 +94,62 @@ function buttonSpin(button) {
setTimeout(loadPerso, 1000); setTimeout(loadPerso, 1000);
} }
function tuto(niveau) {
windowWidth = window.innerWidth;
windowHeight = window.innerHeight;
var numberColonne1 = 2;
var numberColonne2 = 1;
var isEtNonAllowed = false;
var isOuNonAllowed = false;
var isNotAllowed = false;
var isOuAllowed = false;
var finish = false;
var firstTime = [];
switch (niveauActuel) {
case 1:
firstTime.push("et");
break;
case 2:
firstTime.push("inv");
break;
case 3:
firstTime.push("ou");
break;
case 4:
firstTime.push("nand");
break;
case 5:
firstTime.push("nonou");
break;
default:
finish = true;
break;
}
isTuto = false;
createStage("play_container");
stage.add(layer);
colonneTot = 3;
numberPerColonne = [numberColonne1, numberColonne2, 2];
var logiqueCount = 0;
if (firstTime.length > 0) {
numberColonne1 = 1;
numberColonne2 = 0;
numberPerColonne = [numberColonne1, numberColonne2];
liveColonneNumber.push([]);
timeEnd = 20;
insertLogiqueColonne("logique" + logiqueCount, firstTime[0], 0);
if (allowedInfoPorte) {
openModal('firstTime' + firstTime[0]);
timer.pause();
}
}
logiques.forEach(function (element) {
createLinkAuto(element.name);
});
initEndGame("tuto");
}
function createGameOne(niveau) { function createGameOne(niveau) {
windowWidth = window.innerWidth; windowWidth = window.innerWidth;
@ -231,3 +298,18 @@ function createGameOne(niveau) {
}); });
initEndGame(); initEndGame();
} }
function generateFromBottom() {
var NombrecolonneTest = 2;
var numberPerColonneTest = [3, 2];
var porteBool = [[true, "et"], [true, "ou"], [true, "inv"]];
for (let i = NombrecolonneTest; i > 0; i--) {
for (let j = 0; j < numberPerColonneTest[i - 1]; j++) {
let numberRandom = getRandomArbitrary(0, porteBool.length);
}
}
}

@ -1,4 +1,4 @@
function initAllSwitch() { function initAllSwitch(mode) {
switchs.forEach(function (element) { switchs.forEach(function (element) {
let switche = stage.findOne("#" + element); let switche = stage.findOne("#" + element);
@ -7,7 +7,7 @@ function initAllSwitch() {
activeSwitch(switche.id()); activeSwitch(switche.id());
checkAllSortieLogique(); checkAllSortieLogique();
layer.draw(); layer.draw();
checkEnd(); checkEnd(mode);
}); });
switche.on('mouseover', function () { switche.on('mouseover', function () {
document.body.style.cursor = "pointer"; document.body.style.cursor = "pointer";

@ -71,11 +71,17 @@ function resetAllTabs(save) {
function gameOne() { function gameOne() {
document.querySelector("#play_container").style.maxHeight = window.innerHeight / 1.5 + "px"; document.querySelector("#play_container").style.maxHeight = window.innerHeight / 1.5 + "px";
createGameOne(niveauActuel); createGameOne(niveauActuel);
isLineCollapsing();
click = 0; click = 0;
var i = 0;
while (checkIfEnd() || isLineCollapsing()) { while (checkIfEnd() || isLineCollapsing()) {
if (i === NOMBRETEST) {
break;
}
resetAllTabs(false); resetAllTabs(false);
console.log("arf");
createGameOne(niveauActuel); createGameOne(niveauActuel);
isLineCollapsing();
i++;
} }
//console.log(stage); //console.log(stage);
//gameData = new GameData(height,width,2,10,"mode1",false,"play_container"); //gameData = new GameData(height,width,2,10,"mode1",false,"play_container");
@ -85,17 +91,14 @@ function gameOne() {
} }
function initEndGame() { function initEndGame(mode) {
calculNombreSwitch(); calculNombreSwitch();
switchCreator(numberOfSwitch); switchCreator(numberOfSwitch);
createAllLinkSwitch(); createAllLinkSwitch();
initAllSwitch(); initAllSwitch(mode);
logiques.forEach(function (element) { logiques.forEach(function (element) {
checkEntreCroisement(element.name); checkEntreCroisement(element.name);

Loading…
Cancel
Save