generateur fonctionne et suit des paramètres précis

master
pisouvigne 5 years ago
parent c9b96882fb
commit bc950714fb

@ -33,5 +33,5 @@ var numberOfSwitch = 0;
//grid
var colonneTot = 4;
var numberPerColonne = [1,1,3];
var liveColonneNumber = [[],[],[]];
var numberPerColonne = [];
var liveColonneNumber = [];

@ -2,7 +2,7 @@ function createEnd() {
//find X and Y
var X = stage.width() - stage.width() /100 * 10;
var X = stage.width() - stage.width() /100 * 5;
var Y = stage.height() / 3;
var imageObj2 = new Image();
@ -240,3 +240,34 @@ function createAllLinkSwitch(){
createLinkSwitch();
}
}
function createLinkAuto(logiqueId){
var logique = findLogique(logiqueId);
var ligneSupCoor = null;
var stop = false;
//on cherche la ligne supérieur
logiques.forEach(function(element){
if(!stop){
if(logique.x < element.x){
stop = true;
ligneSupCoor = element.x;
}
}
});
if(ligneSupCoor != null){
//on stock les portes logiques de la lignes supérieur (si il reste de la place dans leur entrees)
var ligneSup = [];
logiques.forEach(function(element){
if(element.x == ligneSupCoor){
if(checkLogiqueLines(element.name,"id1") == false || checkLogiqueLines(element.name,"id2") == false){
ligneSup.push(element);
}
}
});
//on tire au sort
let sortie = getRandomArbitrary(0,ligneSup.length);
sortie = ligneSup[sortie];
createLink(findLogique(logiqueId),findLogique(sortie.name));
}
}

@ -50,14 +50,59 @@ function createGame2(){
createAllLinkSwitch();
/*createLink(stage.findOne("#s7"), findLogique("logique5"));
createLink(stage.findOne("#s5"), findLogique("logique4"));
createLink(stage.findOne("#s6"), findLogique("logique4"));
createLink(stage.findOne("#s3"), findLogique("logique2"));
createLink(stage.findOne("#s2"), findLogique("logique1"));
createLink(stage.findOne("#s1"), findLogique("logique1"));
createLink(stage.findOne("#s4"), findLogique("logique3"));*/
initAllSwitch();
createEnd();
initEnd();
}
function generatorGame() {
timeEnd = getRandomArbitrary(15, 50);
initTimer();
var logiqueCount = 0;
colonneTot = getRandomArbitrary(2, 3);
for (let i = 0; i < colonneTot; i++) {
liveColonneNumber.push([]);
}
for (let i = 0; i < colonneTot; i++) {
numberPerColonne[i] = getRandomArbitrary(2, 4);
for (let j = 0; j < numberPerColonne[i]; j++) {
logiqueCount++;
let type = null;
switch (getRandomArbitrary(0, 4)) {
case 0:
type = "et";
break;
case 1:
type = "ou";
break;
case 2:
type = "etnon";
break;
case 3:
type = "nonou";
break;
}
insertLogiqueColonne("logique" + logiqueCount, type, i);
}
}
logiques.forEach(function (element) {
createLinkAuto(element.name);
});
calculNombreSwitch();
switchCreator(numberOfSwitch);
createAllLinkSwitch();
initAllSwitch();
createEnd();
initEnd();
}

@ -109,6 +109,10 @@ function checkSortieLogique(logiqueId) {
});
}
function getRandomArbitrary(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
function isElementExisting(elementId) {
if (stage.findOne("#" + elementId) != null) {
return true;
@ -132,9 +136,23 @@ function checkEnd() {
}
});
if (ter) {
setTimeout(() => { alert("Niveau terminé"); }, 40);
setTimeout(() => { localStorage.setItem("niveau", parseInt(niveauActuel)+1); document.location.reload(true); }, 100);
}
}
function calculNombreSwitch(){
var entrelibre = 0;
logiques.forEach(function(element){
if(element.id1 == null){
entrelibre++;
}
if(element.id2 == null && element.type != "inv"){
entrelibre++;
}
});
numberOfSwitch = entrelibre;
}

@ -53,7 +53,7 @@
</div>
<div id="header-container">
<h1 align=center>Niveau 26</h1>
<h1 align=center>Niveau <a id="niveau">0</a></h1>
<div align=center>
<a>Temps :</a>
<a id="timer">0 m 0 s</a>
@ -65,6 +65,13 @@
<script>
var switchs = [], lineCount = [], logiques = [],lines = [], endLines = [],end, switchsInfo= [], switchsInfoCopy = [];
var niveauActuel = localStorage.getItem("niveau");
if(niveauActuel == null){
niveauActuel = 1;
}
let niveauhtml = document.getElementById('niveau');
niveauhtml.innerHTML = niveauActuel;
var layer = new Konva.Layer();
let container = document.getElementById('play-container');
container.style.height = innerHeight /100*80 + "px";
@ -84,7 +91,7 @@
initLayer();
createGame2();
generatorGame();
checkAllSortieLogique();
</script>

Loading…
Cancel
Save