|
|
|
@ -1,8 +1,40 @@
|
|
|
|
|
function openModal(modalId) {
|
|
|
|
|
var modal = document.getElementById(modalId);
|
|
|
|
|
modal.style.display = "block";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function tryChangePseudo() {
|
|
|
|
|
isPseudoOk(document.querySelector("#pseudoInput").value, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setPseudoOk(newPseudo, change) {
|
|
|
|
|
document.querySelector("#saveIco").className = "fa fa-save";
|
|
|
|
|
document.querySelector("#saveIco").style.color = "green";
|
|
|
|
|
if (change) {
|
|
|
|
|
changePseudo(newPseudo, pseudo);
|
|
|
|
|
pseudo = newPseudo;
|
|
|
|
|
document.querySelector("#pseudo_show").innerHTML = newPseudo;
|
|
|
|
|
localStorage.setItem("pseudo", newPseudo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function setPseudoNotOk() {
|
|
|
|
|
document.querySelector("#saveIco").className = "fa fa-save";
|
|
|
|
|
document.querySelector("#saveIco").style.color = "#fe8a71";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
document.querySelector("#pseudoInput").addEventListener('input', (event) => {
|
|
|
|
|
document.querySelector("#saveIco").className = "fa fa-database dys";
|
|
|
|
|
isPseudoOk(document.querySelector("#pseudoInput").value, false);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function openChangeInput() {
|
|
|
|
|
|
|
|
|
|
if (document.querySelector("#PseudoChanger").style.display !== "flex") {
|
|
|
|
|
document.querySelector("#PseudoChanger").style.display = "flex";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
document.querySelector("#PseudoChanger").style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function closeModal(modal) {
|
|
|
|
@ -632,7 +664,7 @@ function checkEnd(mode) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function success(mode) {
|
|
|
|
|
console.log(mode)
|
|
|
|
|
modeG = mode;
|
|
|
|
|
timeTot = timeTot + timer.getTimeValues().seconds;
|
|
|
|
|
timer.stop();
|
|
|
|
|
stage.findOne("#end").fill(colorSwitchActiveBackground);
|
|
|
|
@ -647,13 +679,40 @@ function success(mode) {
|
|
|
|
|
document.querySelector(".retry_tuto").style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
if (successPanel) {
|
|
|
|
|
document.querySelector("#win_pannel").style.display = "block";
|
|
|
|
|
//openModal("success");
|
|
|
|
|
document.querySelector("#click_number").innerHTML = click;
|
|
|
|
|
document.querySelector("#next_level_button").onclick = function () {
|
|
|
|
|
//closeModal('success');
|
|
|
|
|
nextLevel(mode);
|
|
|
|
|
if (isFinish) {
|
|
|
|
|
showDiv(document.querySelector("#mainPage"));
|
|
|
|
|
hideDiv(document.querySelector("#playPage"));
|
|
|
|
|
|
|
|
|
|
openModal("gameOver");
|
|
|
|
|
switch (mode) {
|
|
|
|
|
case "vanillaFacile":
|
|
|
|
|
document.querySelector("#gameOverTitle").innerHTML = 'Vanilla Facile';
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
document.querySelector("#gameOverTitle").innerHTML = mode;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
clickTot = clickTot + click;
|
|
|
|
|
var scoreTot
|
|
|
|
|
if (niveauActuel === 1)
|
|
|
|
|
scoreTot = 0;
|
|
|
|
|
else
|
|
|
|
|
scoreTot = ((1 / timeTot) * (1 / clickTot) * 1000).toFixed(2);
|
|
|
|
|
document.querySelector("#scoreTotGameOver").innerHTML = "Score : " + scoreTot;
|
|
|
|
|
document.querySelector("#niveauGameOver").innerHTML = niveauActuel;
|
|
|
|
|
document.querySelector("#TempsTotGameOver").innerHTML = "Temps : " + timeTot;
|
|
|
|
|
sendScore(scoreTot, mode, clickTot, niveauActuel, 25, timeTot);
|
|
|
|
|
clickTot = 0;
|
|
|
|
|
} else {
|
|
|
|
|
document.querySelector("#win_pannel").style.display = "block";
|
|
|
|
|
//openModal("success");
|
|
|
|
|
document.querySelector("#click_number").innerHTML = click;
|
|
|
|
|
document.querySelector("#next_level_button").onclick = function () {
|
|
|
|
|
//closeModal('success');
|
|
|
|
|
nextLevel(mode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*var previewStage = new Konva.Stage({
|
|
|
|
|
container: 'show_stage',
|
|
|
|
|
width: window.innerWidth / 1.5,
|
|
|
|
@ -684,12 +743,19 @@ function nextLevel(mode) {
|
|
|
|
|
launchTuto();
|
|
|
|
|
} else if (mode === "vanilla" || mode === "normal") {
|
|
|
|
|
launchGameOne(mode);
|
|
|
|
|
} else if (mode === "vanillaFacile") {
|
|
|
|
|
} else if (mode === "vanillaFacile" || mode === "normalFacile") {
|
|
|
|
|
launchFacileGameOne(mode);
|
|
|
|
|
} else if (mode === "vanillaMoyen" || mode === "normalMoyen") {
|
|
|
|
|
launchMoyenGameOne(mode);
|
|
|
|
|
} else if (mode === "vanillaImpossible" || mode === "normalImpossible") {
|
|
|
|
|
launchImpossibleGameOne(mode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function leaderboard(mode, btn) {
|
|
|
|
|
openModal('scoreModal');
|
|
|
|
|
getScore(mode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function resize() {
|
|
|
|
|
stage.scale({
|
|
|
|
@ -812,7 +878,7 @@ function modePerso() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function playNormal() {
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
@ -825,6 +891,21 @@ function goToSelection(btn) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function vanillaSelection() {
|
|
|
|
|
document.querySelector("#title_selection_2").innerHTML = "Vanilla";
|
|
|
|
|
document.querySelector("#selectionNormalContainer").style.display = "none";
|
|
|
|
|
document.querySelector("#selectionVanillaContainer").style.display = "flex";
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
document.querySelectorAll(".vanillaElement").forEach(function (element) {
|
|
|
|
|
if (element.children[0].innerHTML !== "")
|
|
|
|
|
element.children[1].className = "fa fa-play";
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function normalSelection() {
|
|
|
|
|
document.querySelector("#title_selection_2").innerHTML = "Normal";
|
|
|
|
|
document.querySelector("#selectionVanillaContainer").style.display = "none";
|
|
|
|
|
document.querySelector("#selectionNormalContainer").style.display = "flex";
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
document.querySelectorAll(".vanillaElement").forEach(function (element) {
|
|
|
|
@ -847,6 +928,45 @@ function playFacileVanilla() {
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchFacileGameOne("vanillaFacile");
|
|
|
|
|
}
|
|
|
|
|
function playImpossibleVanilla() {
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchImpossibleGameOne("vanillaImpossible");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function playMoyenVanilla() {
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchMoyenGameOne("vanillaMoyen");
|
|
|
|
|
}
|
|
|
|
|
//normal
|
|
|
|
|
function playFacileNormal() {
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchFacileGameOne("normalFacile");
|
|
|
|
|
}
|
|
|
|
|
function playImpossibleNormal() {
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchImpossibleGameOne("normalImpossible");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function playMoyenNormal() {
|
|
|
|
|
hideDiv(document.querySelector("#VanillalevelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
launchMoyenGameOne("normalMoyen");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function modeTuto() {
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
@ -891,8 +1011,32 @@ function wait(mode, btn) {
|
|
|
|
|
setTimeout(playFacileVanilla, time);
|
|
|
|
|
setMode("Vanilla Facile");
|
|
|
|
|
break;
|
|
|
|
|
case "normal":
|
|
|
|
|
case "vanillaImpossible":
|
|
|
|
|
setTimeout(playImpossibleVanilla, time);
|
|
|
|
|
setMode("Vanilla Impossible");
|
|
|
|
|
break;
|
|
|
|
|
case "vanillaMoyen":
|
|
|
|
|
setTimeout(playMoyenVanilla, time);
|
|
|
|
|
setMode("Vanilla Moyen");
|
|
|
|
|
break;
|
|
|
|
|
case "normalFacile":
|
|
|
|
|
setTimeout(playFacileNormal, time);
|
|
|
|
|
setMode("Normal Facile");
|
|
|
|
|
break;
|
|
|
|
|
case "normalImpossible":
|
|
|
|
|
setTimeout(playImpossibleNormal, time);
|
|
|
|
|
setMode("Vanilla Impossible");
|
|
|
|
|
break;
|
|
|
|
|
case "normalMoyen":
|
|
|
|
|
setTimeout(playMoyenNormal, time);
|
|
|
|
|
setMode("Normal Moyen");
|
|
|
|
|
break;
|
|
|
|
|
case "normalInfini":
|
|
|
|
|
setTimeout(playNormal, time);
|
|
|
|
|
setMode("Normal Infini");
|
|
|
|
|
break;
|
|
|
|
|
case "normal":
|
|
|
|
|
setTimeout(normalSelection, time);
|
|
|
|
|
setMode("Normal");
|
|
|
|
|
break;
|
|
|
|
|
case "vanilla":
|
|
|
|
@ -1063,7 +1207,7 @@ function launchGameOne(mode) {
|
|
|
|
|
if (mode === "normal") {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
if (getRandomArbitrary(0, 5) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
|
checkAllSortieLogique();
|
|
|
|
|
}
|
|
|
|
@ -1129,10 +1273,15 @@ function launchFacileGameOne(mode) {
|
|
|
|
|
case 22:
|
|
|
|
|
case 23:
|
|
|
|
|
case 24:
|
|
|
|
|
col = [5, 4, 3];
|
|
|
|
|
matchs = [[1, 3], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 25:
|
|
|
|
|
col = [5, 4, 3];
|
|
|
|
|
matchs = [[1, 3], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
isFinish = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
|
@ -1141,7 +1290,9 @@ function launchFacileGameOne(mode) {
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mode === "normalFacile") {
|
|
|
|
|
console.log(mode)
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
@ -1168,6 +1319,188 @@ function launchFacileGameOne(mode) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function launchMoyenGameOne(mode) {
|
|
|
|
|
document.querySelector(".niveau").innerHTML = niveauActuel + " / 25";
|
|
|
|
|
document.querySelector("#win_pannel").style.display = "none";
|
|
|
|
|
timer.stop();
|
|
|
|
|
timer.reset();
|
|
|
|
|
resetAllTabs(false);
|
|
|
|
|
var col = [];
|
|
|
|
|
var matchs = [];
|
|
|
|
|
var porteLogique = [];
|
|
|
|
|
var time = 30;
|
|
|
|
|
switch (niveauActuel) {
|
|
|
|
|
case 1:
|
|
|
|
|
case 2:
|
|
|
|
|
col = [4, 3];
|
|
|
|
|
matchs = [[1, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
case 4:
|
|
|
|
|
col = [5, 3, 2];
|
|
|
|
|
matchs = [[1, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
col = [5, 3, 2];
|
|
|
|
|
matchs = [[1, 3]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
case 6:
|
|
|
|
|
col = [5, 4, 3];
|
|
|
|
|
matchs = [[1, 2], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
case 9:
|
|
|
|
|
case 10:
|
|
|
|
|
case 11:
|
|
|
|
|
case 12:
|
|
|
|
|
case 13:
|
|
|
|
|
case 14:
|
|
|
|
|
case 15:
|
|
|
|
|
case 16:
|
|
|
|
|
case 17:
|
|
|
|
|
case 18:
|
|
|
|
|
case 19:
|
|
|
|
|
case 20:
|
|
|
|
|
case 21:
|
|
|
|
|
case 22:
|
|
|
|
|
case 23:
|
|
|
|
|
case 24:
|
|
|
|
|
case 25:
|
|
|
|
|
isFinish = true;
|
|
|
|
|
col = [7, 6, 5];
|
|
|
|
|
matchs = [[1, 3], [1, 2], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"], [true, "etnon"], [true, "nonou"]];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
|
|
tentative = i;
|
|
|
|
|
if (generator(matchs, col, porteLogique, mode, time) === false)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (mode === "normalMoyen") {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
|
checkAllSortieLogique();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
while (checkIfEnd()) {
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
|
|
tentative = i;
|
|
|
|
|
if (generator(matchs, col, porteLogique, mode, time) === false)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (mode === "normalMoyen") {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
|
checkAllSortieLogique();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function launchImpossibleGameOne(mode) {
|
|
|
|
|
document.querySelector(".niveau").innerHTML = niveauActuel + " / 25";
|
|
|
|
|
document.querySelector("#win_pannel").style.display = "none";
|
|
|
|
|
timer.stop();
|
|
|
|
|
timer.reset();
|
|
|
|
|
resetAllTabs(false);
|
|
|
|
|
var col = [];
|
|
|
|
|
var matchs = [];
|
|
|
|
|
var porteLogique = [];
|
|
|
|
|
var time = 20;
|
|
|
|
|
switch (niveauActuel) {
|
|
|
|
|
case 1:
|
|
|
|
|
case 2:
|
|
|
|
|
col = [4, 3];
|
|
|
|
|
matchs = [[1, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
case 4:
|
|
|
|
|
col = [5, 3, 2];
|
|
|
|
|
matchs = [[1, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
col = [5, 3, 2];
|
|
|
|
|
matchs = [[1, 3]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
case 6:
|
|
|
|
|
col = [5, 4, 3];
|
|
|
|
|
matchs = [[1, 2], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"]];
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
case 9:
|
|
|
|
|
case 10:
|
|
|
|
|
case 11:
|
|
|
|
|
case 12:
|
|
|
|
|
case 13:
|
|
|
|
|
case 14:
|
|
|
|
|
case 15:
|
|
|
|
|
case 16:
|
|
|
|
|
case 17:
|
|
|
|
|
case 18:
|
|
|
|
|
case 19:
|
|
|
|
|
case 20:
|
|
|
|
|
case 21:
|
|
|
|
|
case 22:
|
|
|
|
|
case 23:
|
|
|
|
|
case 24:
|
|
|
|
|
case 25:
|
|
|
|
|
isFinish = true;
|
|
|
|
|
col = [7, 6, 5];
|
|
|
|
|
matchs = [[1, 3], [1, 2], [2, 2]];
|
|
|
|
|
porteLogique = [[true, "et"], [true, "ou"], [true, "inv"], [true, "etnon"], [true, "nonou"]];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
|
|
tentative = i;
|
|
|
|
|
if (generator(matchs, col, porteLogique, mode, time) === false)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (mode === "normalImpossible") {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
|
checkAllSortieLogique();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
while (checkIfEnd()) {
|
|
|
|
|
for (let i = 0; i < 200; i++) {
|
|
|
|
|
tentative = i;
|
|
|
|
|
if (generator(matchs, col, porteLogique, mode, time) === false)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (mode === "normalImpossible") {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
switchsInfoCopy.forEach(function (sw) {
|
|
|
|
|
if (getRandomArbitrary(0, 3) === 1) {
|
|
|
|
|
activeSwitch(sw.id);
|
|
|
|
|
checkAllSortieLogique();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function launchTuto() {
|
|
|
|
|
document.querySelector("#win_pannel").style.display = "none";
|
|
|
|
|
document.querySelector(".niveau").innerHTML = niveauActuel;
|
|
|
|
|