You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
397 lines
12 KiB
397 lines
12 KiB
|
|
function openModal(modal) {
|
|
var modal = document.getElementById(modal);
|
|
modal.style.display = "block";
|
|
|
|
}
|
|
function closeModal(modal) {
|
|
var modal = document.getElementById(modal);
|
|
modal.style.display = "none";
|
|
}
|
|
|
|
function darkMode() {
|
|
var checkbox = document.getElementById("darkcheck");
|
|
if (checkbox.checked == true) {
|
|
setColor("black");
|
|
}
|
|
else {
|
|
setColor("white");
|
|
}
|
|
}
|
|
function dysFont() {
|
|
var checkbox = document.getElementById("dyscheckbox");
|
|
var textToChange = document.querySelectorAll(".dys");
|
|
var font;
|
|
if (checkbox.checked == true) {
|
|
font = "dys";
|
|
}
|
|
else {
|
|
font = "main";
|
|
}
|
|
textToChange.forEach(function (item) {
|
|
item.style.fontFamily = font;
|
|
})
|
|
document.getElementById("jeu-select").style.fontFamily = font;
|
|
}
|
|
|
|
function setColor(color) {
|
|
if (color == "black") {
|
|
var backgroundToChange = document.querySelectorAll(".background");
|
|
backgroundToChange.forEach(function(element){
|
|
element.style.backgroundColor = blackColor;
|
|
});
|
|
document.body.style.color = whiteColor;
|
|
document.getElementById("setting_int").style.color = whiteColor;
|
|
var hr = document.querySelectorAll("#hr");
|
|
hr.forEach(function (item) {
|
|
item.setAttribute("style", "border : 3px solid " + whiteColor);
|
|
});
|
|
document.querySelectorAll(".border").forEach(function(element){
|
|
element.style.border = "5px solid" + whiteColor;
|
|
});
|
|
|
|
} else {
|
|
document.body.style.color = blackColor;
|
|
var backgroundToChange = document.querySelectorAll(".background");
|
|
backgroundToChange.forEach(function(element){
|
|
element.style.backgroundColor = whiteColor;
|
|
});
|
|
document.getElementById("setting_int").style.color = blackColor;
|
|
var hr = document.querySelectorAll("#hr");
|
|
hr.forEach(function (item) {
|
|
item.setAttribute("style", "border : 3px solid " + blackColor);
|
|
});
|
|
document.querySelectorAll(".border").forEach(function(element){
|
|
element.style.border = "5px solid" + blackColor;
|
|
});
|
|
}
|
|
//fun
|
|
document.querySelector(".secret").style.color = "#fe8a71";
|
|
}
|
|
|
|
function setLang(newLang) {
|
|
var textToChange = document.querySelectorAll(".txt");
|
|
if (newLang === "fr") {
|
|
textToChange.forEach(function (item) {
|
|
let currText = item.id;
|
|
document.getElementById(currText).innerHTML = lang.fr[currText];
|
|
});
|
|
document.querySelector(".img_france").style.opacity = 1;
|
|
document.querySelector(".img_usa").style.opacity = 0.2;
|
|
}
|
|
else {
|
|
textToChange.forEach(function (item) {
|
|
let currText = item.id;
|
|
document.getElementById(currText).innerHTML = lang.en[currText];
|
|
});
|
|
document.querySelector(".img_france").style.opacity = 0.2;
|
|
document.querySelector(".img_usa").style.opacity = 1;
|
|
}
|
|
}
|
|
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 whatIsElement(element) {
|
|
if (findLogique(element.name) == null || findLogique(element.name) == undefined) {
|
|
return "switch";
|
|
} else {
|
|
return "logique";
|
|
}
|
|
}
|
|
|
|
function setLine(logiqueElement, lineId, lineName) {
|
|
logiques.forEach(function (element, index) {
|
|
if (element.name === logiqueElement.name) {
|
|
Object.keys(element).map(function (objectKey, index) {
|
|
if (objectKey == lineId) {
|
|
element[objectKey] = lineName;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function changeLineColor(idLine) {
|
|
let line = stage.findOne("#" + idLine);
|
|
var colorline = line.stroke() == colorLineActive ? colorLineInnactive : colorLineActive;
|
|
line.stroke(colorline);
|
|
}
|
|
function changeLineColorInput(idLine,color) {
|
|
let line = stage.findOne("#" + idLine);
|
|
console.log("changer");
|
|
line.stroke(color);
|
|
}
|
|
function changeLineColorBlack(idLine) {
|
|
let line = stage.findOne("#" + idLine);
|
|
line.stroke(colorLineInnactive);
|
|
}
|
|
function changeLineColorYellow(idLine) {
|
|
let line = stage.findOne("#" + idLine);
|
|
line.stroke(colorLineActive);
|
|
}
|
|
|
|
function checkAllSortieLogique() {
|
|
logiques.forEach(function (element) {
|
|
if (element.id3 != null)
|
|
checkSortieLogique(element.name);
|
|
});
|
|
}
|
|
|
|
function checkSortieLogique(logiqueId) {
|
|
let logique = findLogique(logiqueId);
|
|
logiques.forEach(function (element, index) {
|
|
if (element.name === logique.name) {
|
|
let line1State, line2State;
|
|
let id1Color = stage.findOne("#" + element.id1).stroke();
|
|
if (element.type !== "inv") {
|
|
let id2Color = stage.findOne("#" + element.id2).stroke();
|
|
if (id2Color == colorLineInnactive) {
|
|
line2State = false;
|
|
} else {
|
|
line2State = true;
|
|
}
|
|
}
|
|
|
|
if (id1Color == colorLineInnactive) {
|
|
line1State = false;
|
|
} else {
|
|
line1State = true;
|
|
}
|
|
|
|
switch (logique.type) {
|
|
case "et":
|
|
if (line1State == true && line2State == true) {
|
|
changeLineColorYellow(element.id3);
|
|
}
|
|
else {
|
|
changeLineColorBlack(element.id3);
|
|
}
|
|
break;
|
|
case "inv":
|
|
if (line1State == false) {
|
|
changeLineColorYellow(element.id3);
|
|
}
|
|
else {
|
|
changeLineColorBlack(element.id3);
|
|
}
|
|
break;
|
|
case "ou":
|
|
if (line1State == true || line2State == true) {
|
|
changeLineColorYellow(element.id3);
|
|
}
|
|
else {
|
|
changeLineColorBlack(element.id3);
|
|
}
|
|
break;
|
|
case "nonou":
|
|
if (line1State == true || line2State == true) {
|
|
changeLineColorBlack(element.id3);
|
|
}
|
|
else {
|
|
changeLineColorYellow(element.id3);
|
|
}
|
|
break;
|
|
case "etnon":
|
|
if (line1State == false && line2State == false) {
|
|
changeLineColorYellow(element.id3);
|
|
} else if (line1State == false && line2State == true) {
|
|
changeLineColorYellow(element.id3);
|
|
} else if (line1State == true && line2State == false) {
|
|
changeLineColorYellow(element.id3);
|
|
} else {
|
|
changeLineColorBlack(element.id3);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function getRandomArbitrary(min, max) {
|
|
return Math.floor(Math.random() * (max - min) + min);
|
|
}
|
|
|
|
function isElementExisting(elementId) {
|
|
if (stage.findOne("#" + elementId) != null) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function checkLineSwitch(switchId) {
|
|
if (stage.findOne("#" + switchId) != null) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function checkEnd() {
|
|
let ter = true;
|
|
endLines.forEach(function (element) {
|
|
if (stage.findOne("#line" + element).stroke() == "black") {
|
|
ter = false;
|
|
|
|
}
|
|
});
|
|
if (ter && !isTuto) {
|
|
setTimeout(() => { nextLevel(); }, 100);
|
|
}
|
|
}
|
|
|
|
function nextLevel(){
|
|
niveauActuel++;
|
|
timeTot = timeTot + timer.getTimeValues().seconds;
|
|
launchGameOne();
|
|
}
|
|
|
|
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() {
|
|
console.log(window.innerWidth);
|
|
stage.scale({ x: 1, y: 1 });
|
|
stage.draw();
|
|
console.log(stage);
|
|
}
|
|
|
|
function activeSwitchInput(event) {
|
|
changeAllSwitchColorActive(event.target.value);
|
|
}
|
|
function inactiveSwitchInput(event) {
|
|
changeAllSwitchColorInActive(event.target.value);
|
|
}
|
|
function activeLineInput(event) {
|
|
changeAllLineColorActive(event.target.value);
|
|
}
|
|
function inactiveLineInput(event) {
|
|
changeAllLineColorInActive(event.target.value);
|
|
}
|
|
function inactiveEndInput(event) {
|
|
changeEndColorInActive(event.target.value);
|
|
}
|
|
|
|
document.querySelector("#active_switch_picker").addEventListener("input", activeSwitchInput, false);
|
|
document.querySelector("#inactive_switch_picker").addEventListener("input", inactiveSwitchInput, false);
|
|
document.querySelector("#active_line_picker").addEventListener("input", activeLineInput, false);
|
|
document.querySelector("#inactive_line_picker").addEventListener("input", inactiveLineInput, false);
|
|
document.querySelector("#inactive_end_picker").addEventListener("input", inactiveEndInput, false);
|
|
|
|
function changeAllSwitchColorActive(color){
|
|
switchsInfoCopy.forEach(function(element){
|
|
var switche = stage.findOne("#"+element.id);
|
|
if(switche.fill() == colorSwitchActiveBackground){
|
|
switche.fill(color);
|
|
}
|
|
});
|
|
colorSwitchActiveBackground = color;
|
|
layer.draw();
|
|
}
|
|
function changeEndColorInActive(color){
|
|
stage.findOne("#end").fill(color);
|
|
layer.draw();
|
|
}
|
|
function changeAllSwitchColorInActive(color){
|
|
switchsInfoCopy.forEach(function(element){
|
|
var switche = stage.findOne("#"+element.id);
|
|
if(switche.fill() == colorSwitchInnactiveBackground){
|
|
switche.fill(color);
|
|
}
|
|
});
|
|
colorSwitchInnactiveBackground = color;
|
|
layer.draw();
|
|
}
|
|
|
|
function changeAllLineColorActive(color){
|
|
var line1 = stage.findOne("#line2");
|
|
var line2 = stage.findOne("#line3");
|
|
var line3 = stage.findOne("#line4");
|
|
if(line1.stroke() === colorLineActive){
|
|
line1.stroke(color);
|
|
}
|
|
if(line2.stroke() === colorLineActive){
|
|
line2.stroke(color);
|
|
}
|
|
if(line3.stroke() === colorLineActive){
|
|
line3.stroke(color);
|
|
}
|
|
colorLineActive = color;
|
|
layer.draw();
|
|
}
|
|
function changeAllLineColorInActive(color){
|
|
var line1 = stage.findOne("#line2");
|
|
var line2 = stage.findOne("#line3");
|
|
var line3 = stage.findOne("#line4");
|
|
if(line1.stroke() === colorLineInnactive){
|
|
line1.stroke(color);
|
|
}
|
|
if(line2.stroke() === colorLineInnactive){
|
|
line2.stroke(color);
|
|
}
|
|
if(line3.stroke() === colorLineInnactive){
|
|
line3.stroke(color);
|
|
}
|
|
colorLineInnactive = color;
|
|
layer.draw();
|
|
}
|
|
|
|
function play(){
|
|
niveauActuel = 1;
|
|
document.querySelector("#mainPage").style.display = 'none';
|
|
document.querySelector("#playPage").style.display = 'block';
|
|
timeTot = 0;
|
|
launchGameOne();
|
|
}
|
|
|
|
function launchGameOne(){
|
|
document.querySelector(".niveau").innerHTML = niveauActuel;
|
|
timer.stop();
|
|
timer.reset();
|
|
resetAllTabs();
|
|
gameOne();
|
|
}
|
|
|
|
function clearArray(arr){
|
|
while(arr.length > 0) {
|
|
arr.pop();
|
|
}
|
|
return arr.splice(0,arr.length);
|
|
}
|
|
|
|
function closeGame(){
|
|
timer.stop();
|
|
document.querySelector("#mainPage").style.display = 'block';
|
|
document.querySelector("#playPage").style.display = 'none';
|
|
resetAllTabs();
|
|
tutoCreateLayer();
|
|
}
|
|
var rotated = false;
|
|
function flip(){
|
|
document.querySelectorAll(".fa").forEach(function(element){
|
|
deg = rotated ? 0 : 360;
|
|
element.style.transform = 'rotate('+deg+'deg)';
|
|
});
|
|
rotated = !rotated;
|
|
} |