From 47eb94d456a0ef8efa61924de5f985f1ea819266 Mon Sep 17 00:00:00 2001 From: yasevret Date: Sun, 14 Feb 2021 14:13:51 +0100 Subject: [PATCH] Ajout Mode Tier pour toutes les dimensions + Ajout Dimension 2*2 --- SwichGIT/src/index.html | 2 +- SwichGIT/src/js/main.js | 98 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 93 insertions(+), 7 deletions(-) diff --git a/SwichGIT/src/index.html b/SwichGIT/src/index.html index 26b89b3..4b3c533 100644 --- a/SwichGIT/src/index.html +++ b/SwichGIT/src/index.html @@ -562,7 +562,7 @@
- +

JOUER

diff --git a/SwichGIT/src/js/main.js b/SwichGIT/src/js/main.js index 0aa23d5..2ea275d 100644 --- a/SwichGIT/src/js/main.js +++ b/SwichGIT/src/js/main.js @@ -10,8 +10,8 @@ var darktercia = "#606060"; var carteselect = []; var deckPartie = []; //Ensemble des cartes affichees a l'ecran var TasDuJEU = []; // Ensemble de toutes les cartes presente dans le jeu -var allMode = ["Solo", "Infini", "Bac"]; // Défini tout les modes de Jeu -var allDimension = ["4 * 3", "3 * 3", "3 * 2"]; +var allMode = ["Match à Point", "Mode Timer", "Infini", "Bac"]; // Défini tout les modes de Jeu +var allDimension = ["4 * 3", "3 * 3", "3 * 2", "2 * 2"];// Défini toutes les dimensions que les cartes peuvent avoir var selectionMode = 0; var selectionDiemension = 0; @@ -23,7 +23,6 @@ function majSizeCard(column) { document.documentElement.style.setProperty('--taille', newTailleOrdi + "vw"); document.documentElement.style.setProperty('--tailleTablette', newTailleTablette + "vw"); } - function modePrec() { if (selectionMode == 0) { selectionMode = allMode.length - 1; @@ -206,7 +205,7 @@ class Figure { } this.couleur = couleur; this.forme = forme; - if (selectionDiemension == 2) { + if (selectionDiemension == 2 || selectionDiemension == 3) { this.pos = this.X + this.Y * 2; } else { this.pos = this.X + this.Y * 3; @@ -415,7 +414,9 @@ function lancerpartie() { lesPoints = 0; + document.getElementById("progressbar").style.visibility = "hidden"; var ready = true; + //fonction de creation de partie a changer en fonction du test voulu if (selectionMode == 0) { if (selectionDiemension == 0) { @@ -427,20 +428,42 @@ function lancerpartie() { } else if (selectionDiemension == 2) { creePartieClassique3_2(); majSizeCard(2); + } else if (selectionDiemension == 3) { + window.alert("Oups, il semblerait que ce mode ne soit pas encore disponible..."); + ready = false; } } else if (selectionMode == 1) { + document.getElementById("progressbar").style.visibility = "visible"; + decompte(); if (selectionDiemension == 0) { - majSizeCard(3); creePartieInfini(4, 3); + majSizeCard(3); } else if (selectionDiemension == 1) { creePartieInfini(3, 3); majSizeCard(3); } else if (selectionDiemension == 2) { creePartieInfini3_2(3, 2); majSizeCard(2); + } else if (selectionDiemension == 3) { + creePartieInfini3_2(2, 2); + majSizeCard(2); } } else if (selectionMode == 2) { + if (selectionDiemension == 0) { + creePartieInfini(4, 3); + majSizeCard(3); + } else if (selectionDiemension == 1) { + creePartieInfini(3, 3); + majSizeCard(3); + } else if (selectionDiemension == 2) { + creePartieInfini3_2(3, 2); + majSizeCard(2); + } else if (selectionDiemension == 3) { + creePartieInfini3_2(2, 2); + majSizeCard(2); + } + } else if (selectionMode == 3) { bacASable(); } if (ready) { @@ -471,13 +494,14 @@ function redistribuerPlateau() { for (var i = 0; i < 16; i++) { if (selectionDiemension == 2) { remplacerLaCarte3_2(deckPartie[i]); + } else if (selectionDiemension == 3) { + remplacerLaCarte2_2(deckPartie[i]); } else { remplacerLaCarte(deckPartie[i]); } } } afficherCartes(deckPartie); - } function redistribuer() { @@ -592,6 +616,60 @@ function changerlesCartes3_2() { rechargerGAME(); } +function changerlesCartes2_2() { + while (carteselect.length != 0) { + remplacerLaCarte2_2(carteselect[0]); + carteselect.shift(); + } + rechargerGAME(); +} + +function remplacerLaCarte2_2(uneCarte) { + pos = deckPartie.indexOf(uneCarte); + var AllFigure = []; + var Cox1, Coy1, Cox2, Coy2; + + var numCouleur = getRandom(0, 3); + var laCouleur; + + Cox1 = getRandom(0, uneCarte.column - 1); + Coy1 = getRandom(0, uneCarte.row - 1); + + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else if (numCouleur == 1) { + laCouleur = CouleurFigure.Couleur2; + } else if (numCouleur == 2) { + laCouleur = CouleurFigure.Couleur3; + } else if (numCouleur == 3) { + laCouleur = CouleurFigure.Couleur4; + } + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1, laCouleur)); + + Cox2 = getRandom(0, uneCarte.column - 1); + Coy2 = getRandom(0, uneCarte.row - 1); + + while (Cox2 == Cox1 && Coy1 == Coy2) { + Cox2 = getRandom(0, uneCarte.column - 1); + Coy2 = getRandom(0, uneCarte.row - 1); + } + numCouleur = getRandom(0, 3); + + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else if (numCouleur == 1) { + laCouleur = CouleurFigure.Couleur2; + } else if (numCouleur == 2) { + laCouleur = CouleurFigure.Couleur3; + } else if (numCouleur == 3) { + laCouleur = CouleurFigure.Couleur4; + } + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2, laCouleur)); + //Code de Generation de Figure + var newCarte = new Carte(pos + 1, AllFigure, uneCarte.row, uneCarte.column); + deckPartie[pos] = newCarte; +} + function remplacerLaCarte3_2(uneCarte) { pos = deckPartie.indexOf(uneCarte); var AllFigure = []; @@ -1452,6 +1530,8 @@ function testPourJeuInfini() { document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; if (selectionDiemension == 2) { changerlesCartes3_2(); + } else if (selectionDiemension == 3) { + changerlesCartes2_2(); } else { changerlesCartes(); } @@ -1627,6 +1707,11 @@ function comparaisonARBRE(CarteMereEntree, CarteFilleEntree) { if (CarteFille.SesFigures[i].forme == CarteMere.SesFigures[j].forme) { //Forme identiques for (var k = 0; k < CarteMere.SesFigures[j].type.length; k++) { + if (CarteFille.SesFigures[i].couleur != CarteMere.SesFigures[j].couleur) {//Si les figures ne sont pas de la même couleur on stop la comparaison + var leCode = new CODE(CarteMere); + leCode.code = -1; + return leCode; + } if (CarteFille.SesFigures[i].type[0] == TypeFigure.Petit) { if (CarteMere.SesFigures[j].type[k] == TypeFigure.Petit) { var leCode = new CODE(CarteMere); @@ -1722,6 +1807,7 @@ function doublonInterdit(uneCarte) { } function bacASable() { + majSizeCard(2); var lesCartes = []; var LesFigure = [];