From 9f3c3c2d59b878bb565959772fa5209eff68b726 Mon Sep 17 00:00:00 2001 From: cytoffin Date: Mon, 15 Mar 2021 09:07:44 +0100 Subject: [PATCH] Multi --- SwichGIT/src/ActualiserIDPartie.php | 27 + SwichGIT/src/ConnexionBDD.php | 24 + SwichGIT/src/SupprimerEtCreerPartie.php | 21 + SwichGIT/src/cleanBase.php | 5 + SwichGIT/src/css/desktops.css | 10 +- SwichGIT/src/debug.log | 2 - SwichGIT/src/envoipseudo.php | 7 + SwichGIT/src/envoipts.php | 4 + SwichGIT/src/envoyercartes.php | 18 + SwichGIT/src/envoyeridpartie.php | 4 + SwichGIT/src/{index.html => index.php} | 117 +- SwichGIT/src/js/main2.js | 3192 +++++++++++++++++++++++ SwichGIT/src/js/menu.js | 15 +- SwichGIT/src/mysqlitedb.db | Bin 0 -> 376832 bytes SwichGIT/src/test.php | 4 + 15 files changed, 3426 insertions(+), 24 deletions(-) create mode 100644 SwichGIT/src/ActualiserIDPartie.php create mode 100644 SwichGIT/src/ConnexionBDD.php create mode 100644 SwichGIT/src/SupprimerEtCreerPartie.php create mode 100644 SwichGIT/src/cleanBase.php delete mode 100644 SwichGIT/src/debug.log create mode 100644 SwichGIT/src/envoipseudo.php create mode 100644 SwichGIT/src/envoipts.php create mode 100644 SwichGIT/src/envoyercartes.php create mode 100644 SwichGIT/src/envoyeridpartie.php rename SwichGIT/src/{index.html => index.php} (91%) create mode 100644 SwichGIT/src/js/main2.js create mode 100644 SwichGIT/src/mysqlitedb.db create mode 100644 SwichGIT/src/test.php diff --git a/SwichGIT/src/ActualiserIDPartie.php b/SwichGIT/src/ActualiserIDPartie.php new file mode 100644 index 0000000..c28f63f --- /dev/null +++ b/SwichGIT/src/ActualiserIDPartie.php @@ -0,0 +1,27 @@ +Identifiant partie : "; +echo ""; +echo " "; + + +$db=new MyDB(); +$afficher = $db->query('SELECT * FROM partieCartes where IdPartie="'.$idparte.'" '); +$tableau =[]; +while ($row = $afficher->fetchArray()) { + $un=$row['colUn']; + $deux=$row['colDeux']; + $trois=$row['colTrois']; + $tout=$un.','.$deux.','.$trois; + // $entier=$entier+1; + array_push($tableau,$tout); +} + +foreach ($tableau as $val) { + //echo "

$val d

"; +} +$comma_separated = implode(",", $tableau); +$_SESSION['listecartebdd']=$comma_separated; \ No newline at end of file diff --git a/SwichGIT/src/ConnexionBDD.php b/SwichGIT/src/ConnexionBDD.php new file mode 100644 index 0000000..c6b7ff2 --- /dev/null +++ b/SwichGIT/src/ConnexionBDD.php @@ -0,0 +1,24 @@ +open('mysqlitedb.db'); + //$this->exec('CREATE TABLE partieScore(IdPartie STRING PRIMARY KEY,scorePremierJ STRING,scoreDeuxiemeJ STRING, pseudoPremierJ STRING,pseudoDeuxiemeJ STRING)'); + //$this->exec('CREATE TABLE partieCartes(IdPartie STRING ,IdCarte STRING,colUn STRING, colDeux STRING, colTrois STRING)'); + + } +} + +function genererChaineAleatoire($longueur = 10) +{ + $caracteres = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $longueurMax = strlen($caracteres); + $chaineAleatoire = ''; + for ($i = 0; $i < $longueur; $i++) + { + $chaineAleatoire .= $caracteres[rand(0, $longueurMax - 1)]; + } + return $chaineAleatoire; +} + diff --git a/SwichGIT/src/SupprimerEtCreerPartie.php b/SwichGIT/src/SupprimerEtCreerPartie.php new file mode 100644 index 0000000..a17c8fe --- /dev/null +++ b/SwichGIT/src/SupprimerEtCreerPartie.php @@ -0,0 +1,21 @@ +query($requete); + +$newid=genererChaineAleatoire(10); +$_SESSION['idpartie']=$newid; +$db->query('INSERT INTO partieScore(IdPartie) VALUES("'.$newid.'")'); + +$requete2 ="DELETE FROM partieCartes where IdPartie='".$id."'"; +$suppression2 = $db->query($requete2); + +for ($i = 1; $i <= 16; $i++) { + $db->query('INSERT INTO partieCartes(IdPartie,IdCarte) VALUES("'.$newid.'","'.$i.'")'); +} + + diff --git a/SwichGIT/src/cleanBase.php b/SwichGIT/src/cleanBase.php new file mode 100644 index 0000000..46b6a29 --- /dev/null +++ b/SwichGIT/src/cleanBase.php @@ -0,0 +1,5 @@ +query('DELETE FROM partieCartes'); +$update = $db->query('DELETE FROM partieScore'); \ No newline at end of file diff --git a/SwichGIT/src/css/desktops.css b/SwichGIT/src/css/desktops.css index 642bbcb..b2c6ded 100644 --- a/SwichGIT/src/css/desktops.css +++ b/SwichGIT/src/css/desktops.css @@ -523,7 +523,15 @@ border-radius: 30px; } - #textmulti { + #textmulticreer { + font-family: Montserrat, impact, Arial Black; + font-size: 1.5vw; + margin-top: 0.1vw; + color: var(--lightsedonca); + text-align: center; + width: inherit; + } + #textmultirejoindre { font-family: Montserrat, impact, Arial Black; font-size: 1.5vw; margin-top: 0.1vw; diff --git a/SwichGIT/src/debug.log b/SwichGIT/src/debug.log deleted file mode 100644 index f594d68..0000000 --- a/SwichGIT/src/debug.log +++ /dev/null @@ -1,2 +0,0 @@ -[1111/102926.535:ERROR:directory_reader_win.cc(43)] FindFirstFile: Le chemin d’accès spécifié est introuvable. (0x3) -[1120/122821.005:ERROR:directory_reader_win.cc(43)] FindFirstFile: Le chemin d’accès spécifié est introuvable. (0x3) diff --git a/SwichGIT/src/envoipseudo.php b/SwichGIT/src/envoipseudo.php new file mode 100644 index 0000000..314c97f --- /dev/null +++ b/SwichGIT/src/envoipseudo.php @@ -0,0 +1,7 @@ +query('UPDATE partieCartes SET "colUn" = "'.$valcol1.'","colDeux"="'.$valcol2.'","colTrois"="'.$valcol3.'" where IdPartie="'.$idpartie.'" AND IdCarte="'.($i+1).'" '); +} + diff --git a/SwichGIT/src/envoyeridpartie.php b/SwichGIT/src/envoyeridpartie.php new file mode 100644 index 0000000..50cd2ab --- /dev/null +++ b/SwichGIT/src/envoyeridpartie.php @@ -0,0 +1,4 @@ + + + @@ -13,11 +17,11 @@ - + - + @@ -695,26 +699,18 @@
-

Créer

+

Créer

-
- -
- -
- -
-
-

Rejoindre

+

Rejoindre

- +
@@ -981,6 +977,99 @@

+
+ + +
+

C

+
+ +
+ + + diff --git a/SwichGIT/src/js/main2.js b/SwichGIT/src/js/main2.js new file mode 100644 index 0000000..ff51a31 --- /dev/null +++ b/SwichGIT/src/js/main2.js @@ -0,0 +1,3192 @@ +var mode = 1; +var nbplayers = 1; +var lange = 0; +var lightprima = "#DEDEDE"; +var lightsedonca = "#B7B7B7"; +var lighttercia = "#E6E6E6"; + +var darkprima = "#474747"; +var darkseconda = "#393939"; +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 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; +var allModeFrench = ["Match à Point", "Mode Timer", "Infini", "Bac", "MultiJoueur"]; // Défini tout les modes de Jeu en français +var allModeEngl = ["Point Match", "Timer mode", "Infini", "Bac", "MultiPlayer"]; // Défini tout les modes de Jeu en Anglais +var tab2=[]; +var modelangue = false; +var offreSWISH = false; +var carteselectPos = []; + +var lesPoints = 0; //Points du Joueur1 + +function majSizeCard(column) { + var newTailleOrdi = column * 3.2 + 1; + var newTailleTablette = newTailleOrdi + 2; + document.documentElement.style.setProperty('--taille', newTailleOrdi + "vw"); + document.documentElement.style.setProperty('--tailleTablette', newTailleTablette + "vw"); +} +function lancerGameMulti() { + creePartieClassique3_4(); + document.getElementById("pageAccueil").style.visibility = "hidden"; + //document.getElementById("PageLobbyMulti").style.visibility = "hidden"; + document.getElementById("pageGame").style.visibility = "visible"; + document.getElementById("idGameMulti").style.visibility = "visible"; + document.getElementById("progressbar").style.visibility = "hidden"; + //Suprimer les paarties précédantes + /* + $(document).ready(function () { + //alert("Clean bases") + $("#div1").load('cleanBase.php') + }); + */ + + //Créer les 16 lignes dans la base pour les 16 cartes de la partie + //Génère l'idPartie + + //Envoyer les 16 cartes + listecartes=[]; + for (var i = 0; i < deckPartie.length; i++) { + var ajt = deckPartie[i].getMatrice[0] + deckPartie[i].getMatrice[1] + deckPartie[i].getMatrice[2]; + listecartes.push(ajt); + //console.log(ajt); + } + + + $(document).ready(function () { + var cartestables = listecartes; + + $.ajax({ + data: { + cartestables: cartestables + }, + type: "post", + url: "envoyercartes.php", + success: function (data) { + console.log("====Les cartes ont été envoyés (lancerpartie)===") + } + }); + }); +} +function ConvertInttoCarte(ListeDesCartes){ + //console.log("LC",ListeDesCartes); + if(ListeDesCartes.length==0){ + console.log("Vide"); + } + var lescartes=[]; //Liste des cartes + for(let j =0 ; j { + var lacarte = "card"+pos; + var numeroCarte = pos; + //console.log("lacarte: ",lacarte); + //console.log(deckPartie[numeroCarte].get); + document.getElementById(lacarte).style.boxShadow = "0 0 1vw red, 0 0 1vw red"; + }); + } + else { + for (var i=0; i 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } else if (this.couleur == CouleurFigure.Couleur3) { + formeExte.style.backgroundColor = "var(--colorone)"; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } else if (this.couleur == CouleurFigure.Couleur4) { + formeExte.style.backgroundColor = "var(--colortwo)"; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } else { + this.couleur = CouleurFigure.Couleur1; + if (selectionDiemension == 0) { + this.couleur = CouleurFigure.Couleur1; + if (this.pos == 0 || this.pos == 2 || this.pos == 9 || this.pos == 11) { + formeExte.style.backgroundColor = "var(--colorcarre)"; + this.couleur = CouleurFigure.Couleur2; + if(FormeSelect.length > 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 1 || this.pos == 10) { + formeExte.style.backgroundColor = "var(--colorone)"; + this.couleur = CouleurFigure.Couleur3; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 4 || this.pos == 7) { + formeExte.style.backgroundColor = "var(--colortwo)"; + this.couleur = CouleurFigure.Couleur4; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } else if (selectionDiemension == 1) { + this.couleur = CouleurFigure.Couleur1; + if (this.pos == 0 || this.pos == 2 || this.pos == 6 || this.pos == 8) { + formeExte.style.backgroundColor = "var(--colorcarre)"; + this.couleur = CouleurFigure.Couleur2; + if(FormeSelect.length > 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 1 || this.pos == 7) { + formeExte.style.backgroundColor = "var(--colorone)"; + this.couleur = CouleurFigure.Couleur3; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 4) { + formeExte.style.backgroundColor = "var(--colortwo)"; + this.couleur = CouleurFigure.Couleur4; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } + } + containInte.appendChild(formeInte); + containInte.className = "containinteCarte"; + containExte.appendChild(formeExte); + containExte.className = "containexteCarte"; + + vidcontainer.appendChild(containInte); + vidcontainer.appendChild(containExte); + + divcase.appendChild(vidcontainer); + this.CodeHTML = divcase; + break; + + case TypeFigure.Petit: + + var containInte = document.createElement('div'); + var formeInte = document.createElement('div'); + var containExte = document.createElement('div'); + var formeExte = document.createElement('div'); + + var vidcontainer = document.createElement('div'); + vidcontainer.className = "containform3carte"; + vidcontainer.className = "proute"; + + formeExte.className = "formeexte"; + formeExte.classList.add('rondv2'); + + formeInte.className = "formeinte"; + formeInte.classList.add('rondv2'); + + formeInte.style.backgroundColor = "var(--colorbase)"; + + if (this.couleur != null) { + if (this.couleur == CouleurFigure.Couleur1) { + formeInte.style.backgroundColor = "var(--colorbase)"; + } else if (this.couleur == CouleurFigure.Couleur2) { + formeInte.style.backgroundColor = "var(--colorcarre)"; + if(FormeSelect.length > 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + + } else if (this.couleur == CouleurFigure.Couleur3) { + formeInte.style.backgroundColor = "var(--colorone)"; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } else if (this.couleur == CouleurFigure.Couleur4) { + formeInte.style.backgroundColor = "var(--colortwo)"; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } else { + this.couleur = CouleurFigure.Couleur1; + if (selectionDiemension == 0) { + this.couleur = CouleurFigure.Couleur1; + if (this.pos == 0 || this.pos == 2 || this.pos == 9 || this.pos == 11) { + formeInte.style.backgroundColor = "var(--colorcarre)"; + this.couleur = CouleurFigure.Couleur2; + if(FormeSelect.length > 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 1 || this.pos == 10) { + formeInte.style.backgroundColor = "var(--colorone)"; + this.couleur = CouleurFigure.Couleur3; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 4 || this.pos == 7) { + formeInte.style.backgroundColor = "var(--colortwo)"; + this.couleur = CouleurFigure.Couleur4; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } else if (selectionDiemension == 1) { + this.couleur = CouleurFigure.Couleur1; + if (this.pos == 0 || this.pos == 2 || this.pos == 6 || this.pos == 8) { + formeInte.style.backgroundColor = "var(--colorcarre)"; + this.couleur = CouleurFigure.Couleur2; + if(FormeSelect.length > 1) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 1 || this.pos == 7) { + formeInte.style.backgroundColor = "var(--colorone)"; + this.couleur = CouleurFigure.Couleur3; + if(FormeSelect.length > 2) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[2]); + formeInte.classList.add(FormeSelect[2]); + //verification triangle ou penda + if(FormeSelect[2] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[2] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + if (this.pos == 4) { + formeInte.style.backgroundColor = "var(--colortwo)"; + this.couleur = CouleurFigure.Couleur4; + if(FormeSelect.length > 3) + { + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[3]); + formeInte.classList.add(FormeSelect[3]); + //verification triangle ou penda + if(FormeSelect[3] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[3] == "penta"){ + formeInte.classList.add("caspentac"); + } + } else if (FormeSelect.length > 1){ + //suppression formeBase + formeExte.classList.remove('rondv2'); + formeInte.classList.remove('rondv2'); + //ajout forme + formeExte.classList.add(FormeSelect[1]); + formeInte.classList.add(FormeSelect[1]); + //verification triangle ou penda + if(FormeSelect[1] == "triangle"){ + formeInte.classList.add("castrianglec"); + } + if(FormeSelect[1] == "penta"){ + formeInte.classList.add("caspentac"); + } + } + } + } + } + + containInte.appendChild(formeInte); + containInte.className = "containinteCarte"; + containExte.appendChild(formeExte); + containExte.className = "containexteCarte"; + + vidcontainer.appendChild(containInte); + vidcontainer.appendChild(containExte); + + divcase.appendChild(vidcontainer); + this.CodeHTML = divcase; + break; + + } + } + } + get getHTML() { + return this.CodeHTML; + } + get getX() { + return this.X; + } + get getY() { + return this.Y; + } + get getType() { + return this.type; + } + get getForme() { + return this.forme; + } + + +} + +const CouleurFigure = { + Couleur1: 'c1', + Couleur2: 'c2', + Couleur3: 'c3', + Couleur4: 'c4' +} + +const FormeFigure = { + Rond: 'rond', + Carre: 'carre', + Triangle: 'triangle', + Pentagone: 'pentagone', + Losange: 'Losange' +}; + +const TypeFigure = { + Petit: 'p', + Moyen: 'm', + Grand: 'g' +}; + + +function journuit() { + //mode jour + mode = mode + 1; + if (mode % 2 == 0) { + //changer logo swish + document.getElementById("imglogo").src = "imgs/swishjour.png"; + document.getElementById("imglogo2").src = "imgs/swishjour.png"; + document.getElementById("contourbuttonvalider").style.backgroundColor = lightsedonca; + //changer montagnesfond + document.getElementById("mount1").src = "imgs/mount1.png"; + document.getElementById("mount2").src = "imgs/mount2.png"; + //nuages + document.getElementById("cloud").src = "imgs/lightcloud.png"; + //maj couleur principales + document.documentElement.style.setProperty('--lightprima', lightprima); + document.documentElement.style.setProperty('--lightsedonca', lightsedonca); + document.documentElement.style.setProperty('--lighttercia', lighttercia); + } + //mode nuit + else { + //changer logo swish + document.getElementById("imglogo").src = "imgs/swishnuit.png"; + document.getElementById("imglogo2").src = "imgs/swishnuit.png"; + document.getElementById("contourbuttonvalider").style.backgroundColor = darkseconda; + //changer montagnesfond + document.getElementById("mount1").src = "imgs/darkmount1.png"; + document.getElementById("mount2").src = "imgs/darkmount2.png"; + //nuages + document.getElementById("cloud").src = "imgs/darkcloud.png"; + //maj couleur principales + document.documentElement.style.setProperty('--lightprima', darkprima); + document.documentElement.style.setProperty('--lightsedonca', darkseconda); + document.documentElement.style.setProperty('--lighttercia', darktercia); + } +} + +//=================================================================================== +//FONCTION GESTION DE GAME + +function lancerpartie() { + + lesPoints = 0; + goAide(); + + 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) { + creePartieClassique3_4(); + majSizeCard(3); + } else if (selectionDiemension == 1) { + creePartieClassique3_3(); + majSizeCard(3); + } else if (selectionDiemension == 2) { + creePartieClassique3_2(); + majSizeCard(2); + } else if (selectionDiemension == 3) { + + if(!modelangue){ + window.alert("Oups, il semblerait que ce mode ne soit pas encore disponible..."); + } + else{ + window.alert("Oops, it seems that this mode is not yet available..."); + } + + + ready = false; + } + + } else if (selectionMode == 1) { + document.getElementById("progressbar").style.visibility = "visible"; + decompte(); + 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 == 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(); + }else if(selectionMode == 4){ + document.getElementById("pageAccueil").style.visibility = "hidden"; + //document.getElementById("PageLobbyMulti").style.visibility = "visible"; + + } + if (ready) { + document.getElementById("pageAccueil").style.visibility = "hidden"; + document.getElementById("pageGame").style.visibility = "visible"; + } +} + +function retour() { + document.getElementById("pageAccueil").style.visibility = "visible"; + document.getElementById("pageGame").style.visibility = "hidden"; + window.location.reload(); +} + +function rechargerGAME() { + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var i = 0; i < deckPartie.length; i++) { + document.getElementById("containcards").appendChild(deckPartie[i].getHTML); + } +} + +function redistribuerPlateau() { + lesPoints -= 5; + document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; + if (selectionMode == 0) { + redistribuer(); + } else if (selectionMode == 1 || selectionMode == 2) { + for (var i = 0; i < deckPartie.length; i++) { + if (selectionDiemension == 2) { + remplacerLaCarte3_2(deckPartie[i]); + } else if (selectionDiemension == 3) { + remplacerLaCarte2_2(deckPartie[i]); + } else { + remplacerLaCarte(deckPartie[i]); + } + } + } + if(selectionMode == 4){ + redistribuerMulti(); + } + afficherCartes(deckPartie); +} + +function redistribuerMulti() { + carteselect=[]; + carteselectPos=[]; + reselectCartes(); + + deckPartie = []; + for (var i = 0; i < 16; i++) { + var index = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + + deckPartie.push(copieCarte(TasDuJEU[index])); + } + //Envoyer les 16 cartes du plateau + listecartes=[]; + var uneMatrice; + var ajt; + /* + for (var i = 0; i < deckPartie.length; i++) { + var ajt = deckPartie[i].getMatrice[0] + deckPartie[i].getMatrice[1] + deckPartie[i].getMatrice[2]; + listecartes.push(ajt); + console.log(ajt); + }*/ + for (var j = 0; j < deckPartie.length; j++) { //Pour toutes les cartes de deckPartie + + uneMatrice = creaMatriceVierge(deckPartie[j].row, deckPartie[j].column); //Création d'une matrice vierge ( Tableau 2D avec que des 0) + + for (var i = 0; i < deckPartie[j].SesFigures.length; i++) { //Pour chaque figure présente dans la carte + + if (deckPartie[j].SesFigures[i].type == TypeFigure.Petit) { //Check de la taille de la figure et adaptation de la valeur dans la matrice + uneMatrice[deckPartie[j].SesFigures[i].X][deckPartie[j].SesFigures[i].Y] = 1; + } else if (deckPartie[j].SesFigures[i].type == TypeFigure.Moyen) { + uneMatrice[deckPartie[j].SesFigures[i].X][deckPartie[j].SesFigures[i].Y] = 2; + } + } + + ajt = uneMatrice[0]+uneMatrice[1]+uneMatrice[2];//une fois matrice vierge complétée on transforme ça en data + listecartes.push(ajt); + //console.log(ajt); + } + //console.log("LISTE BUG2 ",listecartes); + $(document).ready(function () { + var cartestables = listecartes; + + $.ajax({ + data: { + cartestables: cartestables + }, + type: "post", + url: "envoyercartes.php", + success: function (data) { + console.log("====Les cartes ont été envoyés (redistribuer)===") + } + }); + }); +} + +function redistribuer() { + deckPartie = []; + for (var i = 0; i < 16; i++) { + var index = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + + deckPartie.push(copieCarte(TasDuJEU[index])); + } + afficherCartes(deckPartie); +} + +//================================================================================================================================================================ +//Fonction creations de game + +function genererTouteslesCartes3_2Possibles() { + deckPartie = []; + carteselect = []; + + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var i = 0; i < 2; i++) { + for (var j = 0; j < 2; j++) { + for (var k = 0; k < 6; k++) { + + //Création de la grande figure + for (var h = 0; h < 2; h++) { + var AllFigure = []; + + //Création de la petite figure en fonction de sa place et de la boucle + if (i == 0) { + if (j == 0) { + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 0, i, CouleurFigure.Couleur2); + } else { + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 0, i, CouleurFigure.Couleur3); + } + } else { + if (j == 0) { + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 0, i, CouleurFigure.Couleur1); + } else { + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 0, i, CouleurFigure.Couleur4); + } + } + + AllFigure.push(uneFigure); + + //Verification de l'effet mirroir sur les cartes ayant un point central + var mirroir = true; + if (Math.floor(k / 2) == 2 && i == 1) { + mirroir = false; + } + + if (k != i * 2) { + + if (k == 2 || k == 3) { + + if (h == 0) { + + var uneMoyenFigure = new Figure(TypeFigure.Moyen, FormeFigure.Rond, k % 2, Math.floor(k / 2), CouleurFigure.Couleur1); + } else { + + var uneMoyenFigure = new Figure(TypeFigure.Moyen, FormeFigure.Rond, k % 2, Math.floor(k / 2), CouleurFigure.Couleur4); + } + + } else { + if (h == 0) { + + var uneMoyenFigure = new Figure(TypeFigure.Moyen, FormeFigure.Rond, k % 2, Math.floor(k / 2), CouleurFigure.Couleur2); + } else { + + var uneMoyenFigure = new Figure(TypeFigure.Moyen, FormeFigure.Rond, k % 2, Math.floor(k / 2), CouleurFigure.Couleur3); + } + + } + if (mirroir) { + AllFigure.push(uneMoyenFigure); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 2); + deckPartie.push(uneCarte); + } + } + + } + + } + } + } + return deckPartie; +} + + +function changerlesCartes3_2() { + while (carteselect.length != 0) { + remplacerLaCarte3_2(carteselect[0]); + carteselect.shift(); + } + 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 = []; + var Cox1, Coy1, Cox2, Coy2; + + var numCouleur = getRandom(0, 1); + var laCouleur; + + Cox1 = getRandom(0, uneCarte.column - 1); + Coy1 = getRandom(0, uneCarte.row - 1); + if (Cox1 + 2 * Coy1 == 2 || Cox1 + 2 * Coy1 == 3) { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else { + laCouleur = CouleurFigure.Couleur4; + } + } else { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur2; + } else { + laCouleur = CouleurFigure.Couleur3; + } + } + 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); + } + if (Cox2 + 2 * Coy2 == 2 || Cox2 + 2 * Coy2 == 3) { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else { + laCouleur = CouleurFigure.Couleur4; + } + } else { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur2; + } else { + laCouleur = CouleurFigure.Couleur3; + } + } + 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 creePartieInfini3_2(nbRow, nbColum) { + deckPartie = []; + carteselect = []; + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var j = 1; j <= 16; j++) { + + var numCouleur = getRandom(0, 1); + var laCouleur; + var AllFigure = []; + var Cox1, Coy1, Cox2, Coy2; + + Cox1 = getRandom(0, nbColum - 1); + Coy1 = getRandom(0, nbRow - 1); + if (Cox1 + 2 * Coy1 == 2 || Cox1 + 2 * Coy1 == 3) { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else { + laCouleur = CouleurFigure.Couleur4; + } + } else { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur2; + } else { + laCouleur = CouleurFigure.Couleur3; + } + } + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1, laCouleur)); + + Cox2 = getRandom(0, nbColum - 1); + Coy2 = getRandom(0, nbRow - 1); + + while (Cox2 == Cox1 && Coy1 == Coy2) { + Cox2 = getRandom(0, nbColum - 1); + Coy2 = getRandom(0, nbRow - 1); + } + + if (Cox2 + 2 * Coy2 == 2 || Cox2 + 2 * Coy2 == 3) { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur1; + } else { + laCouleur = CouleurFigure.Couleur4; + } + } else { + if (numCouleur == 0) { + laCouleur = CouleurFigure.Couleur2; + } else { + laCouleur = CouleurFigure.Couleur3; + } + } + + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2, laCouleur)); + //Code de Generation de Figure + var uneCarte = new Carte(j, AllFigure, nbRow, nbColum); + + deckPartie.push(uneCarte); + + document.getElementById("containcards").appendChild(uneCarte.link); + } +} + +function MaFonction() { + var copyText = document.getElementById("Monidpartie"); + copyText.select(); + copyText.setSelectionRange(0, 99999); + document.execCommand("copy"); +} + +function testerCartesMulti() { + //try { + if (carteselect.length == 0) { + window.alert("Selection Vide test pour jeu classique"); + return; + } else if (carteselect.length < 2) { + window.alert("Selection Trop Petite"); + return; + } else { + var copie = []; + for (var i = 0; i < carteselect.length; i++) { + copie.push(copieCarte(carteselect[i])); + } + var tab = []; + tab = AssemblageARBRE(copie, copieCarte(carteselect[0])); + var solution = true; + var tabCode = []; + for (var i = 0; i < tab.length; i++) { + tabCode.push(tab[i].code); + } + + for (var i = 0; i < tab.length; i++) { + if (tab[i].code == carteselect.length) { + solution = false; + cpt = cpt + 20 * copie.length; + lesPoints += carteselect.length; + document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; + var new2Cartes=changerlesCartesDeTasDeJeuMulti(); + } + } + if (solution) { + document.getElementById("affSolution").textContent = 'Aucune solution trouvée...'; + } + if (!solution) { + document.getElementById("affSolution").textContent = 'Assemblage de ' + copie.length + ' cartes trouvé ! Il reste encore ' + TasDuJEU.length + ' cartes !'; + carteselectPos=[]; + carteselect=[]; + reselectCartes(); + } + } + /*} catch (e) { + window.alert(e); + }*/ + + //Envoyer les 16 cartes du plateau + listecartes=[]; + var ajt; + /* + for (var i = 0; i < deckPartie.length; i++) { + var ajt = deckPartie[i].getMatrice[0] + deckPartie[i].getMatrice[1] + deckPartie[i].getMatrice[2]; + listecartes.push(ajt); + console.log(ajt); + }*/ + for (var j = 0; j < deckPartie.length; j++) { //Pour toutes les cartes de deckPartie + var uneMatrice = creaMatriceVierge(deckPartie[j].row, deckPartie[j].column); //Création d'une matrice vierge ( Tableau 2D avec que des 0) + + + //CODE A RISQUE + for (var i = 0; i < deckPartie[j].SesFigures.length; i++) { //Pour chaque figure présente dans la carte + + if (deckPartie[j].SesFigures[i].type[0] == TypeFigure.Petit) { //Check de la taille de la figure et adaptation de la valeur dans la matrice + uneMatrice[deckPartie[j].SesFigures[i].X][deckPartie[j].SesFigures[i].Y] = 1; + } else if (deckPartie[j].SesFigures[i].type[0] == TypeFigure.Moyen) { + uneMatrice[deckPartie[j].SesFigures[i].X][deckPartie[j].SesFigures[i].Y] = 2; + } + } + // + + + ajt = uneMatrice[0]+uneMatrice[1]+uneMatrice[2];//une fois matrice vierge complétée on transforme ça en data + listecartes.push(ajt); + //console.log(ajt); + } + //console.log("LISTE BUG1: ",listecartes); + + $(document).ready(function () { + var cartestables = listecartes; + + $.ajax({ + data: { + cartestables: cartestables + }, + type: "post", + url: "envoyercartes.php", + success: function (data) { + console.log("====Les cartes ont été envoyés (valider cartes)===") + } + }); + }); +} +function changerlesCartesDeTasDeJeuMulti() { + var new2cartes = []; + // Pour toutes les cartes selectionnées + while (carteselectPos.length != 0) { + + // //Enlever la carte dans le tas du jeu + // var unIndex = TasDuJEU.indexOf(carteselect[0]); + // TasDuJEU.splice(unIndex, 1); + + //si il reste plus de 16 cartes + if (TasDuJEU.length > 16) { + //On prend une autre carte aléatoire dans tas du jeu + var index2 = getRandom(0, TasDuJEU.length - 1) + //var dejaPresente = false; + //Permet de savoir si la carte est deja dans la liste + // for (var j = 0; j < deckPartie.length; j++) { + // if (TasDuJEU[index2].identifiant == deckPartie[j].identifiant) { + // dejaPresente = true; + // } + // } + + deckPartie[carteselectPos[0]]=TasDuJEU[index2]; + TasDuJEU.splice(index2,1); + + + //on recommmence jusqu'à obtenri une carte pas dans le tas de jeu + // while (dejaPresente == true) { + // index2 = getRandom(0, TasDuJEU.length - 1) + // dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + // for (var j = 0; j < deckPartie.length; j++) { + // if (TasDuJEU[index2].identifiant == deckPartie[j].identifiant) { + // dejaPresente = true; + // } + // } + // } + + // unIndex = deckPartie.indexOf(carteselect[0]); + // deckPartie[unIndex] = TasDuJEU[index2]; + // new2cartes.push(TasDuJEU[index2]); + } else { + // si il y a moins de 16 cartes on enlève juste + deckPartie.splice(carteselect[0],1); + // unIndex = deckPartie.indexOf(carteselect[0]); + // deckPartie.splice(unIndex, 1); + } + carteselectPos.shift(); + carteselect.shift(); + } + afficherCartes(deckPartie); + return new2cartes; +} +function creePartieClassique3_2() { + TasDuJEU = genererTouteslesCartes3_2Possibles(); + deckPartie = []; + for (var i = 0; i < TasDuJEU.length; i++) { + CodeRotation = getRandom(0, 3); + if (CodeRotation == 0) { + TasDuJEU[i] = TasDuJEU[i]; + } else if (CodeRotation == 1) { + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } else if (CodeRotation == 2) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + } else if (CodeRotation == 3) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } + } + for (var i = 0; i < 16; i++) { + var index = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + + deckPartie.push(copieCarte(TasDuJEU[index])); + } + afficherCartes(deckPartie); +} + + +function genererTouteslesCartes3_3Possibles() { + deckPartie = []; + carteselect = []; + + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var i = 1; i < 9; i++) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, 0)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, 0)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + } + for (var i = 0; i < 9; i++) { + if (i != 3 && Math.floor(i / 3) != 2) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, 1)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, 1)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + } + } + for (var i = 0; i < 9; i++) { + if (i != 1 && (i % 3) != 2) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, 0)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, 0)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + } + } + for (var i = 0; i < 4; i++) { + if (i != 2) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, 1)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, 1)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 3, 3); + deckPartie.push(uneCarte); + } + } + return deckPartie; + +} + +function creePartieClassique3_3() { + TasDuJEU = genererTouteslesCartes3_3Possibles(); + deckPartie = []; + for (var i = 0; i < TasDuJEU.length; i++) { + CodeRotation = getRandom(0, 3); + if (CodeRotation == 0) { + TasDuJEU[i] = TasDuJEU[i]; + } else if (CodeRotation == 1) { + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } else if (CodeRotation == 2) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + } else if (CodeRotation == 3) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } + } + for (var i = 0; i < 16; i++) { + var index = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + + deckPartie.push(copieCarte(TasDuJEU[index])); + } + afficherCartes(deckPartie); +} + +function genererTouteslesCartes3_4Possibles() { + deckPartie = []; + carteselect = []; + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + + for (var j = 0; j < 2; j++) { + for (var i = 0; i < 12; i++) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, j)); + if (i != 3 * j) { + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 4, 3); + deckPartie.push(uneCarte); + if (!doublonInterdit(uneCarte)) { + AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 0, j)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var unDoublon = new Carte(deckPartie.length + 1, AllFigure, 4, 3); + deckPartie.push(unDoublon); + } + } + } + } + for (var j = 0; j < 2; j++) { + for (var i = 0; i < 12; i++) { + var AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, j)); + if (i != 3 * j + 1) { + if (i != 2 && i != 5 && i != 8 && i != 11) { + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var uneCarte = new Carte(deckPartie.length + 1, AllFigure, 4, 3); + deckPartie.push(uneCarte); + if (!doublonInterdit(uneCarte)) { + AllFigure = []; + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, 1, j)); + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3))); + var unDoublon = new Carte(deckPartie.length + 1, AllFigure, 4, 3); + deckPartie.push(unDoublon); + } + } + } + } + } + return deckPartie; +} + +function afficherCartes(Liste) { + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var i = 0; i < Liste.length; i++) { + document.getElementById("containcards").appendChild(Liste[i].link); + } +} + +function creePartieClassique3_4() { + TasDuJEU = genererTouteslesCartes3_4Possibles(); + deckPartie = []; + for (var i = 0; i < TasDuJEU.length; i++) { + CodeRotation = getRandom(0, 3); + if (CodeRotation == 0) { + TasDuJEU[i] = TasDuJEU[i]; + } else if (CodeRotation == 1) { + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } else if (CodeRotation == 2) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + } else if (CodeRotation == 3) { + TasDuJEU[i] = Verticale(TasDuJEU[i]); + TasDuJEU[i] = Horizontale(TasDuJEU[i]); + } + } + for (var i = 0; i < 16; i++) { + var index = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + + deckPartie.push(copieCarte(TasDuJEU[index])); + } + afficherCartes(deckPartie); +} + +function creePartieInfini(nbRow, nbColum) { + deckPartie = []; + carteselect = []; + while (document.getElementById("containcards").firstElementChild != null) { + document.getElementById("containcards").firstElementChild.remove(); + } + for (var j = 1; j <= 16; j++) { + + var AllFigure = []; + var Cox1, Coy1, Cox2, Coy2; + + Cox1 = getRandom(0, nbColum - 1); + Coy1 = getRandom(0, nbRow - 1); + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1)); + + Cox2 = getRandom(0, nbColum - 1); + Coy2 = getRandom(0, nbRow - 1); + + while (Cox2 == Cox1 && Coy1 == Coy2) { + Cox2 = getRandom(0, nbColum - 1); + Coy2 = getRandom(0, nbRow - 1); + } + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2)); + //Code de Generation de Figure + var uneCarte = new Carte(j, AllFigure, nbRow, nbColum); + + deckPartie.push(uneCarte); + + document.getElementById("containcards").appendChild(uneCarte.link); + } +} + +//======================================================================================================================================================== +//Changer les cartes et Changer les cartes de Tas de jeu + +function changerlesCartesDeTasDeJeu() { + while (carteselect.length != 0) { + var unIndex = TasDuJEU.indexOf(carteselect[0]); + TasDuJEU.splice(unIndex, 1); + if (TasDuJEU.length > 16) { + var index2 = getRandom(0, TasDuJEU.length - 1) + var dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index2].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + while (dejaPresente == true) { + index2 = getRandom(0, TasDuJEU.length - 1) + dejaPresente = false;//Permet de savoir si la carte est deja dans la liste + for (var j = 0; j < deckPartie.length; j++) { + if (TasDuJEU[index2].identifiant == deckPartie[j].identifiant) { + dejaPresente = true; + } + } + } + unIndex = deckPartie.indexOf(carteselect[0]); + deckPartie[unIndex] = TasDuJEU[index2]; + } else { + unIndex = deckPartie.indexOf(carteselect[0]); + deckPartie.splice(unIndex, 1); + } + carteselect.shift(); + } + afficherCartes(deckPartie); +} + + + +function changerlesCartes() { + while (carteselect.length != 0) { + remplacerLaCarte(carteselect[0]); + carteselect.shift(); + } + rechargerGAME(); +} + +function remplacerLaCarte(uneCarte) { + pos = deckPartie.indexOf(uneCarte); + var AllFigure = []; + var Cox1, Coy1, Cox2, Coy2; + + Cox1 = getRandom(0, uneCarte.column - 1); + Coy1 = getRandom(0, uneCarte.row - 1); + AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1)); + + 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); + } + AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2)); + //Code de Generation de Figure + var newCarte = new Carte(pos + 1, AllFigure, uneCarte.row, uneCarte.column); + deckPartie[pos] = newCarte; +} + +//==================================================================================== +//GESTION DE MATRICE + +function somMatrice(matrice1, matrice2, row, column) { + var somMatrice = creaMatriceVierge(row, column); + for (var i = 0; i < column; i++) { + for (var j = 0; j < row; j++) { + somMatrice[i][j] = matrice1[i][j] + matrice2[i][j]; + } + } + return somMatrice; +} + +function copieMatrice(laMatrice, row, column) { + var myMatrice = new Array(); + for (var i = 0; i < column; i++) { + myMatrice[i] = new Array(); + for (var j = 0; j < row; j++) { + myMatrice[i][j] = laMatrice[i][j]; + } + } + return myMatrice; +} + +function getRandom(min, max) { + return Math.round(Math.random() * (max - min) + min) +} + +function creaMatriceVierge(row, column) { + var myMatrice = new Array(); + for (var i = 0; i < column; i++) { + myMatrice[i] = new Array(); + for (var j = 0; j < row; j++) { + myMatrice[i][j] = 0; + } + } + return myMatrice; +} + +function creaMatrice(row, column) { + + var myMatrice = creaMatriceVierge(row, column); + //window.alert(myMatrice) + + var Cox1, Coy1, Cox2, Coy2; + + Cox1 = getRandom(0, column - 1); + Coy1 = getRandom(0, row - 1); + + myMatrice[Cox1][Coy1] = 1; + + Cox2 = getRandom(0, column - 1); + Coy2 = getRandom(0, row - 1); + + while (Cox2 == Cox1 && Coy1 == Coy2) { + Cox2 = getRandom(0, column - 1); + Coy2 = getRandom(0, row - 1); + } + myMatrice[Cox2][Coy2] = 2; + + return myMatrice; + +} + +//================================================================================= +//chercheCombi => Compte les combinainsons de 2 à 5 cartes a l'ecran +//Pour changer le nombre de carte maximum dans une liste il faut changer la valeur max de N + +function chercherCombinaison() { + var Cptsolution = 0; + /* + Pour toutes les longueurs possible d’un tas de carte (N = 0, N<4 ; N++) + Pour toutes les échantillon de cartes ( i = 0 ; i<16 – N ; i ++) + Pour toutes les autres cartes (j=0 ;j<15-i-N ;j++) + DeckTest = vide ; + DeckTest.push(DeckPartie[i]) + Pour N + 2 cartes (k=1 ;k<2+N ;k++) + DeckTest.push(DeckPartie[i+k+j]) + Tab = AssemblageArbre(copie(Decktest) , Decktest[0]) + Pour toutes les valeurs de tab + Si tab[m] == N+2 + //Woula j’ai trouvé*/ + for (var N = 0; N < 4; N++) { + for (var i = 0; i < 16 - N; i++) { + for (var j = 0; j < 15 - i - N; j++) { + var DeckTeste = []; + var tabCode = []; + var tab = []; + var copie = []; + DeckTeste.push(deckPartie[i]); + for (var k = 1; k < N + 2; k++) { + DeckTeste.push(deckPartie[i + k + j]) + } + tab = AssemblageARBRE(copieListeDeCarte(DeckTeste), copieCarte(DeckTeste[0])); + + //Recupération de code + + var solution = true; + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + //Reagarde si il y a une solution + for (var g = 0; g < tab.length; g++) { + if (tab[g].code == DeckTeste.length) { + solution = false; + } + } + //Reagarde si il y a une solution + if (!solution) { + Cptsolution++; + var recup = []; + for (var h = 0; h < DeckTeste.length; h++) { + recup.push(deckPartie.indexOf(DeckTeste[h]) + 1); + } + if(!modelangue){ + window.alert("Combinaison a " + (N + 2) + " cartes trouvée : " + recup); + } + else{ + window.alert("Combination with " + (N + 2) + " cards found : " + recup); + } + + } + } + } + } + if(!modelangue){ + window.alert("Nombre de combinaison: " + Cptsolution); + } + else{ + window.alert("Number of combination: " + Cptsolution); + } + +} + +function testPertinent() { + //test(); + offreSWISH = true; + lesPoints -= 5; + document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; + var allComb = 0; + //window.alert("Voici ce que j'ai trouvé, mais voulez vous booster mes recherches ?") + console.log("===============!!!! BOOST !!!!=============") + for (var i = 2; i < 6; i++) { + var tabCheck = []; + for (var j = 0; j < deckPartie.length - i + 1; j++) { + var tab = recherchePertinente(i, j, j); + for (var m = 0; m < tab.length; m++) { + tabCheck.push(tab[m]); + } + + } + //console.log("J'ai tout les ensembles pour " + i + " cartes " + tabCheck.length) + var tabInte = comparaisonEmpilement(tabCheck, 0); + //console.log("nouveau tableau avec " + tabInte.length) + var comb = 0; + comb = testAllEnsemble(tabInte); + if (comb > 0 && i >= 3) { + return; + } + allComb += comb; + } + console.log("nb combi : " + allComb) + window.alert("Et voilà ! J'ai finis !") +} + +function comparaisonEmpilement(liste, debut) { + if (debut >= liste.length - 1) { + return liste; + } + var tabPropre = []; + for (var j = 0; j <= debut; j++) { + tabPropre.push(liste[j]); + } + var sommeCarreEle = sommeCarreElement(liste[debut].ensemble); + for (var i = debut + 1; i < liste.length; i++) { + if (sommeCarreEle != sommeCarreElement(liste[i].ensemble)) { + tabPropre.push(liste[i]); + } else { + //console.log("==========DOUBLON==========") + //console.log(sommeCarreEle + " ===== " + sommeCarreElement(liste[i].ensemble)) + } + } + //console.log(tabPropre.length + " ========== " + liste.length) + var tabRetour = comparaisonEmpilement(tabPropre, debut + 1); + return tabRetour; +} +function sommeCarreElement(element) { + var sommeCarre = 0; + for (var i = 0; i < element.length; i++) { + sommeCarre += Math.pow(2, element[i]); + } + return sommeCarre; +} + +function selectionAuto(liste) { + while (carteselect.length != 0) { + var id = "card" + carteselect[0].identifiant; + document.getElementById(id).style.boxShadow = ""; + carteselect.splice(0, 1); + } + for (var i = 0; i < liste.length; i++) { + var id = "card" + deckPartie[liste[i]].identifiant; + document.getElementById(id).style.boxShadow = "0 0 1vw red, 0 0 1vw red"; + carteselect.push(deckPartie[liste[i]]); + } +} + +function testAllEnsemble(liste) { + var tabCode = []; + var compteur = 0; + for (var i = 0; i < liste.length; i++) { + var lesCartes = []; + for (var j = 0; j < liste[i].ensemble.length; j++) { + lesCartes.push(deckPartie[liste[i].ensemble[j]]); + } + var tab = AssemblageARBRE(copieListeDeCarte(lesCartes), copieCarte(lesCartes[0])); + //Recupération de code + var solution = true; + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + //Reagarde si il y a une solution + for (var g = 0; g < tab.length; g++) { + if (tab[g].code == lesCartes.length) { + solution = false; + } + } + //Reagarde si il y a une solution + if (!solution) { + selectionAuto(liste[i].ensemble); + //console.log("==========================") + if(!modelangue){ + console.log("Combinaison à " + (lesCartes.length) + " cartes trouvée : " + liste[i].ensemble); + } + else { + console.log("Combination with " + (lesCartes.length) + " cards found : " + liste[i].ensemble); + } + + compteur++; + //console.log(sommeCarreElement(liste[i].ensemble)) + } + } + return compteur; +} + +class Ensemble { + constructor(valeur, index) { + this.v = valeur; + this.ensemble = []; + this.ensemble.push(index); + } +} + +function recherchePertinente(nbCarte, debut, carte) { + tabRetour = []; + nbCarte = nbCarte - 1; + + //Si il n'y a plus de carte à ajouter dans l'ensemble on regarde si la boucle de peut se boucler + if (nbCarte == 0) { + var laPremiereCarte = deckPartie[debut]; + for (var i = 0; i < deckPartie[carte].SesFigures.length; i++) { + for (var j = 0; j < laPremiereCarte.SesFigures.length; j++) { + if (deckPartie[carte].SesFigures[i].type[0] == TypeFigure.Petit && laPremiereCarte.SesFigures[j].type[0] == TypeFigure.Moyen) { + if (deckPartie[carte].SesFigures[i].couleur == laPremiereCarte.SesFigures[j].couleur) { + tabRetour.push(new Ensemble(0, carte)); + return tabRetour; + } else { + tabRetour.push(new Ensemble(-1, carte)); + return tabRetour; + } + } + } + } + } + + //On recupère tout les index des cartes pouvant compléter le point de la carte à l'index "carte" + for (var i = 0; i < deckPartie[carte].SesFigures.length; i++) { + if (deckPartie[carte].SesFigures[i].type[0] == TypeFigure.Petit) { + var lePoint = deckPartie[carte].SesFigures[i]; + } + } + var listeCarteComp = carteComplementaire(lePoint, debut); + //Si la liste de carte complémentaire est vide alors on retourne un code d'erreur + if (listeCarteComp.length == 0) { + tabRetour.push(new Ensemble(-1, carte)); + return tabRetour; + } + + //Sinon pour chaque index de carte complémentaire on continue la recherche pertinente + var tabPropre = []; + for (var i = 0; i < listeCarteComp.length; i++) { + var tab = []; + var unTabEnsemble = []; + tab.push(recherchePertinente(nbCarte, debut, listeCarteComp[i])); + + for (var k = 0; k < tab[0].length; k++) { + unTabEnsemble.push(tab[0][k]); + } + + for (var j = 0; j < unTabEnsemble.length; j++) { + if (unTabEnsemble[j].v == 0) { + var present = false; + for (var m = 0; m < unTabEnsemble[j].ensemble.length; m++) { + if (unTabEnsemble[j].ensemble[m] == carte) { + present = true; + } + } + if (!present) { + unTabEnsemble[j].ensemble.push(carte); + tabPropre.push(unTabEnsemble[j]); + } + } + } + + } + + return tabPropre; + + + +} + +function carteComplementaire(figure, debut) { + var retour = []; + //Pour toutes les cartes de deckpartie après la carte de début, on regarde les ronds des cartes et on regarde leurs couleurs pour les faire remonter. + for (var i = debut + 1; i < deckPartie.length; i++) { + for (var j = 0; j < deckPartie[i].SesFigures.length; j++) { + if (deckPartie[i].SesFigures[j].type[0] == TypeFigure.Moyen) { + if (deckPartie[i].SesFigures[j].couleur == figure.couleur) { + retour.push(i); + } + } + } + } + return retour; +} + +function test() { + printCombinations([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], 12); +} + +function printCombinations(array, p) { + var combinations = []; + var Cptsolution = 0; + for (k = 2; k < p + 1; k++) { + + function run(level, start) { + for (var i = start; i < array.length - k + level + 1; i++) { + combinations[level] = array[i]; + //console.log(i); + if (level < k - 1) { + + run(level + 1, i + 1); + } else { + + var combTest = []; + for (var j = 0; j < combinations.length; j++) { + combTest.push(deckPartie[combinations[j]]); + //window.alert("Matrice ajouté num" + j + " :" + deckPartie[combinations[j]].getMatrice); + console.log("i" + j + " :" + combinations[j]); + } + console.log("matrice début ex: " + combTest[0].getMatrice); + console.log("Cartes selectionnées :(en partant de indice 0) :") + console.log(combinations.join(" ")); + console.log("----- taille :" + combTest.length + " -------"); + + var cpt = testCombinaison(combTest, combinations, Cptsolution); + Cptsolution = cpt; + } + } + } + run(0, 0); + + if(!modelangue){ + window.alert("fin test " + k + " cartes") + } + else{ + window.alert("end test " + k + " cards") + } + + + } + window.alert("nb combi :" + Cptsolution); +} + + +function testCombinaison(DeckTeste, combi, Cptsolution) { + var tabCode = []; + var tab = []; + //window.alert("---------------"); + tab = AssemblageARBRE(copieListeDeCarte(DeckTeste), copieCarte(DeckTeste[0])); + + //Recupération de code + var solution = true; + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + //Reagarde si il y a une solution + for (var g = 0; g < tab.length; g++) { + if (tab[g].code == DeckTeste.length) { + solution = false; + } + } + //Reagarde si il y a une solution + if (!solution) { + Cptsolution++; + if(!modelangue){ + window.alert("Combinaison à " + (DeckTeste.length) + " cartes trouvée : " + combi); + } + else{ + window.alert("Combination with " + (DeckTeste.length) + " cards found : " + combi); + } + + } + return Cptsolution; +} + +function chercheCombi2() { + + var Cptsolution = 0; + for (var i = 0; i < 15; i++) { + + for (var j = 0; j < 15 - i; j++) { + + var DeckTeste = []; + var tabCode = []; + var tab = []; + var copie = []; + copie.splice(0, DeckTeste.length); + DeckTeste.splice(0, DeckTeste.length); + tab.splice(0, DeckTeste.length); + tabCode.splice(0, DeckTeste.length); + + DeckTeste.push(copieCarte(deckPartie[i])); + DeckTeste.push(copieCarte(deckPartie[j + i + 1])); + + + for (var h = 0; h < DeckTeste.length; h++) { + copie.push(DeckTeste[i]); + } + + tab = AssemblageARBRE(copieListeDeCarte(DeckTeste), copieCarte(DeckTeste[0])); + + var solution = true; + + + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + + for (var g = 0; g < tab.length; g++) { + if (tab[g].code == DeckTeste.length) { + solution = false; + } + } + if (!solution) { + Cptsolution++; + if(!modelangue){ + window.alert("Combinaison a 2 trouve: " + (i + 1) + " " + (i + j + 2)); + } + else{ + window.alert("Combination with 2 found: " + (i + 1) + " " + (i + j + 2)); + } + + } + } + } + if(!modelangue){ + window.alert("Nombre de solution a 2 cartes : " + Cptsolution); + } + else{ + window.alert("Number of solutions with 2 cards : " + Cptsolution); + } + +} + +//================================================================================= +//chercheCombi => Compte les combinainsons de 3 cartes a l'ecran +function chercheCombi3() { + var Cptsolution = 0; + for (var i = 0; i < 15; i++) { //Partie fixe + + for (var j = 0; j < 15 - i; j++) { //Partie movible 1 + + for (var k = 0; k < 15 - j; k++) { //Partie movible 2 + + + var DeckTeste = []; + var tabCode = []; + var tab = []; + var copie = []; + copie.splice(0, DeckTeste.length); + DeckTeste.splice(0, DeckTeste.length); + tab.splice(0, DeckTeste.length); + tabCode.splice(0, DeckTeste.length); + + DeckTeste.push(deckPartie[i]); + DeckTeste.push(deckPartie[j + i + 1]); + DeckTeste.push(deckPartie[k + j + i + 2]); + + for (var h = 0; h < DeckTeste.length; h++) { + copie.push(DeckTeste[i]); + } + + for (var z = 0; z < DeckTeste; z++) { + if (DeckTeste[z] == null) { + window.alert("Pb carte null :" + i + j + k); + } + } + + tab = AssemblageARBRE(copieListeDeCarte(DeckTeste), copieCarte(DeckTeste[0])); + var solution = true; + + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + + + + var DeckTeste = []; + var tabCode = []; + var tab = []; + var copie = []; + copie.splice(0, DeckTeste.length); + DeckTeste.splice(0, DeckTeste.length); + tab.splice(0, DeckTeste.length); + tabCode.splice(0, DeckTeste.length); + + DeckTeste.push(deckPartie[i]); + DeckTeste.push(deckPartie[j + i + 1]); + DeckTeste.push(deckPartie[k + j + i + 2]); + + for (var h = 0; h < DeckTeste.length; h++) { + copie.push(DeckTeste[i]); + } + + for (var z = 0; z < DeckTeste; z++) { + if (DeckTeste[z] == null) { + window.alert("Pb carte null :" + i + j + k); + } + } + + tab = AssemblageARBRE(copieListeDeCarte(DeckTeste), copieCarte(DeckTeste[0])); + var solution = true; + + for (var h = 0; h < tab.length; h++) { + tabCode.push(tab[h].code); + } + + + for (var g = 0; g < tab.length; g++) { + if (tab[g].code == DeckTeste.length) { + solution = false; + } + } + if (!solution) { + Cptsolution++; + if(!modelangue){ + window.alert("Combinaison a 3 trouve: " + (i + 1) + " " + (i + j + 2) + " " + (k + j + i + 3)); + } + else{ + window.alert("Combination with 3 found: " + (i + 1) + " " + (i + j + 2) + " " + (k + j + i + 3)); + } + + } + goRefresh(); + } + } + } + if (Cptsolution == 0) { + if(!modelangue){ + window.alert("Pas de solution"); + } + else{ + window.alert("No solution"); + } + + } + if(!modelangue){ + window.alert("Nombre de solution a 3 cartes : " + Cptsolution); + } + else{ + window.alert("Number of solutions with 3 cards : " + Cptsolution); + } + +} +//============================================================================================= +//Fonction pour refresh l'affichage + +var compteurRefresh = 50; +var refreshJ; + +function goRefresh() { + compteurRefresh = 50; + refresh(); +} + +function refresh() { + //console.log(compteurRefresh) + if (compteurRefresh > 0) { + compteurRefresh--; + refreshJ = setTimeout("refresh()", 100); + } + + else { + clearTimeout(refreshJ); + } + + if (compteurRefresh == 0) { + document.getElementById("affSolution").textContent = ""; + } +} + +//===================================================================== +//Fonctions permettant d'aider le joueur au bout d'un certain temps + + +var compteurAide = 300; + +function rechercheAide() { + var allComb = 0; + //window.alert("Voici ce que j'ai trouvé, mais voulez vous booster mes recherches ?") + console.log("===============!!!! BOOST !!!!=============") + for (var i = 2; i < 6; i++) { + var tabCheck = []; + for (var j = 0; j < deckPartie.length - i + 1; j++) { + var tab = recherchePertinente(i, j, j); + for (var m = 0; m < tab.length; m++) { + tabCheck.push(tab[m]); + } + + } + //console.log("J'ai tout les ensembles pour " + i + " cartes " + tabCheck.length) + var tabInte = comparaisonEmpilement(tabCheck, 0); + //console.log("nouveau tableau avec " + tabInte.length) + var comb = 0; + comb = testAllEnsemble(tabInte); + if (comb > 0) { + return; + } + allComb += comb; + } + if (deckPartie.length < 16 && comb == 0) { + if (!modelangue) { + window.alert("Fin de partie !") + } else { + window.alert("Game Over !") + } + retour(); + clearInterval(itv); + } else if (deckPartie.length >= 16 && comb == 0) { + lesPoints += 5; + redistribuerPlateau(); + } + console.log("nb combi : " + allComb) +} + +var aideJ; + +function goAide() { + compteurAide = 300; + aide(); +} + +function aide() { + console.log(compteurAide) + if (compteurAide > 0) { + compteurAide--; + aideJ = setTimeout("aide()", 100); + } + + else { + clearTimeout(aideJ); + } + + if (compteurAide == 0) { + rechercheAide(); + } +} + + + +//================================================================================= +//FONCTION DE TEST => permet de tester des fonctionnalite via le bouton VALIDER + + +var cpt = 1100; +var x; +var itv = 0; + +function decompte() { + + //var progressnum = document.getElementById("progressnum"); + var indicateur = document.getElementById("indicateur"); + + if (cpt >= 0) { + + cpt--; + x = setTimeout("decompte()", 100); + } + + else { + clearTimeout(x); + } + + if (cpt == 0) { + if(!modelangue){ + window.alert("fin du jeu"); + } + else{ + window.alert("Game Over"); + } + + retour(); + window.location.reload(); + clearInterval(itv); + } + + if (cpt < 550) { + document.getElementById("indicateur").style.backgroundColor = "orange"; + + } + + if (cpt < 366) { + document.getElementById("indicateur").style.backgroundColor = "red"; + } + + indicateur.style.width = cpt + "px"; + //progressnum.innerHTML = cpt; +} + +function testerLesCartes() { + goAide(); + if (selectionMode == 0) { + testPourJeuClassique(); + } else if (selectionMode == 1 || selectionMode==2) { + testPourJeuInfini(); + } + if( selectionMode == 4){ + testerCartesMulti(); + } +} + + +function testPourJeuInfini() { + try { + if (carteselect.length == 0) { + if(!modelangue){ + window.alert("Selection Vide"); + } + else{ + window.alert("Empty selection"); + } + + return; + } else if (carteselect.length < 2) { + if(!modelangue){ + window.alert("Selection Trop Petite"); + } + else{ + window.alert("Selection Too Small"); + } + + return; + } else { + var copie = []; + for (var i = 0; i < carteselect.length; i++) { + copie.push(copieCarte(carteselect[i])); + } + var tab = []; + tab = AssemblageARBRE(copieListeDeCarte(copie), copieCarte(carteselect[0])); + var solution = true; + var tabCode = []; + for (var i = 0; i < tab.length; i++) { + tabCode.push(tab[i].code); + } + for (var i = 0; i < tab.length; i++) { + if (tab[i].code == carteselect.length) { + solution = false; + if (offreSWISH) { + offreSWISH = false; + } else { + lesPoints += carteselect.length; + } + document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; + if (selectionDiemension == 2) { + changerlesCartes3_2(); + } else if (selectionDiemension == 3) { + changerlesCartes2_2(); + } else { + changerlesCartes(); + } + } + } + if (solution) { + if(!modelangue){ + document.getElementById("affSolution").textContent = 'Aucune solution trouvée...'; + } + else{ + document.getElementById("affSolution").textContent = 'No solutions found...'; + } + + } + if (!solution) { + if(!modelangue){ + document.getElementById("affSolution").textContent = 'Assemblage de ' + copie.length + ' cartes trouvé !'; + } + else{ + document.getElementById("affSolution").textContent = 'Assembly of ' + copie.length + ' cards found !'; + } + + } + goRefresh(); + } + } catch (e) { + window.alert(e); + } +} + +//Fonction de test mais pour le jeu classique + +function testPourJeuClassique() { + //try { + if (carteselect.length == 0) { + if(!modelangue){ + window.alert("Selection Vide test pour jeu classique"); + } + else{ + window.alert("Selection Empty test for classic game"); + } + + return; + } else if (carteselect.length < 2) { + if(!modelangue){ + window.alert("Selection Trop Petite"); + } + else{ + window.alert("Selection Too Small"); + } + + return; + } else { + var copie = []; + for (var i = 0; i < carteselect.length; i++) { + copie.push(copieCarte(carteselect[i])); + } + var tab = []; + tab = AssemblageARBRE(copie, copieCarte(carteselect[0])); + var solution = true; + var tabCode = []; + for (var i = 0; i < tab.length; i++) { + tabCode.push(tab[i].code); + } + for (var i = 0; i < tab.length; i++) { + if (tab[i].code == carteselect.length) { + solution = false; + cpt = cpt + 20 * copie.length; + if (offreSWISH) { + offreSWISH = false; + } else { + lesPoints += carteselect.length; + } + document.getElementById("affPoints").textContent = 'Score : ' + lesPoints; + changerlesCartesDeTasDeJeu(); + } + } + if (solution) { + if(!modelangue){ + document.getElementById("affSolution").textContent = 'Aucune solution trouvée...'; + } + else{ + document.getElementById("affSolution").textContent = 'No solutions found...'; + } + + } + if (!solution) { + if(!modelangue){ + document.getElementById("affSolution").textContent = 'Assemblage de ' + copie.length + ' cartes trouvé ! Il reste encore ' + TasDuJEU.length + ' cartes !'; + } + else{ + document.getElementById("affSolution").textContent = 'Assembly of ' + copie.length + ' cards found ! There are still ' + TasDuJEU.length + ' cards !'; + } + } + goRefresh(); + } + /*} catch (e) { + window.alert(e); + }*/ +} + +//=================================================================================== +//Function de copie diverse + +function copieListeDeCarte(Liste) { + var copie = []; + for (var i = 0; i < Liste.length; i++) { + copie.push(copieCarte(Liste[i])); + } + return copie; +} + +function copieCarte(uneCarte) { + if (uneCarte == null) { + return null; + } + var AllFigure = []; + for (var i = 0; i < uneCarte.SesFigures.length; i++) { + AllFigure.push(new Figure(uneCarte.SesFigures[i].type, uneCarte.SesFigures[i].forme, uneCarte.SesFigures[i].X, uneCarte.SesFigures[i].Y, uneCarte.SesFigures[i].couleur)); + } + var carte = new Carte(uneCarte.getIdentifiant, AllFigure, uneCarte.row, uneCarte.column); + carte.Matrice = copieMatrice(uneCarte.Matrice, uneCarte.row, uneCarte.column); + return carte; +} + +function copieLiseDeFigure(Liste) { + var copie = []; + for (var i = 0; i < Liste.length; i++) { + copie.push(copieFigure(Liste[i])); + window.alert("code " + copie[i].CodeHTML) + } + return copie; +} + +function copieFigure(uneFigure) { + if(!modelangue){ + window.alert("Avant copiage " + uneFigure.CodeHTML) + } + else{ + window.alert("Before copying " + uneFigure.CodeHTML) + } + + if (uneFigure == null) { + return null; + } + if(!modelangue){ + window.alert("je fais la copie"); + } + else{ + window.alert("I make the copy"); + } + + var copie = new Figure(uneFigure.type, uneFigure.forme, uneFigure.X, uneFigure.Y); + return copie; +} +//===================================================================================================== +//Function de manipulataion de Carte + +function Verticale(coCarte) { + var laCarte; + laCarte = copieCarte(coCarte); + laCarte = laCarte.carteVerticale; + return laCarte; +} + +function Horizontale(coCarte) { + var laCarte; + laCarte = copieCarte(coCarte); + laCarte = laCarte.carteHorizontale; + return laCarte; +} + +//============================================================================================================================== + +//FONCTION POUR TESTER L'ARBRE + +class CODE { + constructor(Carte) { + this.code = 0; + this.laCarte = Carte; + } +} + +function AssemblageARBRE(TasDeCarte, Carte) { + var uneTable = copieListeDeCarte(TasDeCarte); + var tab = new Array(); + var tabCode = new Array(); + uneTable.splice(0, 1); + if (uneTable.length == 0) { + var leCode = new CODE(Carte); + tab.push(leCode); + return tab; + } + tab.push(AssemblageARBRE(uneTable, copieCarte(uneTable[0]))); + tab.push(AssemblageARBRE(uneTable, Horizontale(copieCarte(uneTable[0])))); + tab.push(AssemblageARBRE(uneTable, Verticale(copieCarte(uneTable[0])))); + var derniereCarte = Horizontale(Verticale(copieCarte(uneTable[0]))); + tab.push(AssemblageARBRE(uneTable, derniereCarte)); + for (var i = 0; i < tab.length; i++) { + for (var j = 0; j < tab[i].length; j++) { + tabCode.push(tab[i][j]); + } + } + + for (var i = 0; i < tabCode.length; i++) { + if (tabCode[i].code != -1) { + var enregistrement = tabCode[i].code; + tabCode[i] = comparaisonARBRE(tabCode[i].laCarte, Carte); + tabCode[i].code += enregistrement; + } + } + return tabCode; +} + + +function comparaisonARBRE(CarteMereEntree, CarteFilleEntree) { + var retour = []; + var liaison = 0; + var CarteMere = copieCarte(CarteMereEntree); + var CarteFille = copieCarte(CarteFilleEntree); + for (var i = 0; i < CarteFille.SesFigures.length; i++) { + for (var j = 0; j < CarteMere.SesFigures.length; j++) { + if (CarteFille.SesFigures[i].X == CarteMere.SesFigures[j].X) { + if (CarteFille.SesFigures[i].Y == CarteMere.SesFigures[j].Y) { + //Coordonnees identiques + 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); + leCode.code = -1; + return leCode; + } + } else if (CarteFille.SesFigures[i].type[0] == TypeFigure.Moyen) { + if (CarteMere.SesFigures[j].type[k] == TypeFigure.Moyen) { + var leCode = new CODE(CarteMere); + leCode.code = -1; + return leCode; + } + } else if (CarteFille.SesFigures[i].type[0] == TypeFigure.Grand) { + if (CarteMere.SesFigures[j].type[k] == TypeFigure.Grand) { + var leCode = new CODE(CarteMere); + leCode.code = -1; + return leCode; + } + } + } + //Si le type de la figure n'y est pas on l'ajoute a la liste de carte Mere; + liaison = liaison + 1; + CarteMere.SesFigures[j].type.push(CarteFille.SesFigures[i].type[0]); + } else { + var leCode = new CODE(CarteMere); + leCode.code = -1; + return leCode; + } + } + } + } + } + var CarteSomme = SommeDeCarte(CarteMere, copieCarte(CarteFille)); + var leCode = new CODE(CarteSomme); + leCode.code = liaison; + return leCode; +} + +function SommeDeCarte(CarteMere, CarteFille) { + CarteMere.Matrice = creaMatriceVierge(CarteMere.row, CarteMere.column); + for (var i = 0; i < CarteFille.SesFigures.length; i++) { + var manquant = true; + for (var j = 0; j < CarteMere.SesFigures.length; j++) { + if (CarteFille.SesFigures[i].X == CarteMere.SesFigures[j].X) { + if (CarteFille.SesFigures[i].Y == CarteMere.SesFigures[j].Y) { + manquant = false; + } + } + } + if (manquant) { + CarteMere.SesFigures.push(CarteFille.SesFigures[i]); + } + } + + for (var i = 0; i < CarteMere.SesFigures.length; i++) { + for (var j = 0; j < CarteMere.SesFigures[i].type.length; j++) { + if (CarteMere.SesFigures[i].type[j] == TypeFigure.Petit) { + CarteMere.Matrice[CarteMere.SesFigures[i].X][CarteMere.SesFigures[i].Y] += 1; + } else if (CarteMere.SesFigures[i].type[j] == TypeFigure.Moyen) { + CarteMere.Matrice[CarteMere.SesFigures[i].X][CarteMere.SesFigures[i].Y] += 2; + } else if (CarteMere.SesFigures[i].type[j] == TypeFigure.Grand) { + CarteMere.Matrice[CarteMere.SesFigures[i].X][CarteMere.SesFigures[i].Y] += 4; + } + } + } + return CarteMere; +} + +//================================================================================================================================ + +//================================================================================== + + + + +function doublonInterdit(uneCarte) { + var lesCoPetit = []; + lesCoPetit.push([1, 1], [1, 1], [1, 2], [1, 2], [1, 1], [2, 2], [1, 1], [2, 1], [1, 2], [2, 2], [1, 2], [2, 1]); + var lesCoMoyens = []; + lesCoMoyens.push([2, 1], [3, 3], [1, 1], [3, 4], [2, 3], [1, 4], [1, 2], [1, 1], [2, 3], [1, 3], [2, 4], [1, 3]); + for (var i = 0; i < lesCoPetit.length; i++) { + if (uneCarte.SesFigures[0].X == (lesCoPetit[i][0]) - 1) { + if (uneCarte.SesFigures[0].Y == (lesCoPetit[i][1]) - 1) { + if (uneCarte.SesFigures[1].X == (lesCoMoyens[i][0]) - 1) { + if (uneCarte.SesFigures[1].Y == (lesCoMoyens[i][1]) - 1) { + return true; + } + } + } + } + } + return false; +} + +function bacASable() { + majSizeCard(3); + var lesCartes = []; + + var LesFigure = []; + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 0, 0, CouleurFigure.Couleur1); + LesFigure.push(uneFigure); + var uneFigure = new Figure(TypeFigure.Petit, FormeFigure.Rond, 1, 0, CouleurFigure.Couleur2); + LesFigure.push(uneFigure); + var uneCarte = new Carte(1, LesFigure, 3, 2); + + lesCartes.push(uneCarte); + + afficherCartes(lesCartes); +} + + + +function functionLange(){ + //window.alert(modelangue); + console.log(modelangue); + if(modelangue){ + modelangue = false; + //MODE FRANCAIS ======= + document.getElementById('flag_top').src = "imgs/flags/flag-france.png"; + document.getElementById('flag_top2').src = "imgs/flags/flag-france.png"; + + document.getElementById('textjouerr').innerHTML = 'JOUER'; + + //Traduction classement + document.getElementById('classementtxt').textContent = 'Classement - solo'; + document.getElementById('premier').textContent = '1er'; + document.getElementById('deuxieme').textContent = '2e'; + document.getElementById('troisieme').textContent = '3e'; + + //Traduction paramètres + document.getElementById('SettingName').textContent = 'Paramètres'; + + //Tradcution des règles + document.getElementById('lesRegles').textContent = 'Les Règles'; + document.getElementById('textRules').textContent = 'Swish : Jeu de 60 cartes composé chacun de billes et de cerceaux, de 4 couleurs différentes possibles. 16 cartes sont posés sur une table et le joueur doit faire superposer des cartes de manière que chaque bille soit dans le cerceau de même couleur d’une autre carte.'; + + document.getElementById("textmode").textContent = "" + allModeFrench[selectionMode] + } + + else{ + modelangue = true; + //MODE ANGLAIS ======== + document.getElementById('flag_top').src = "imgs/flags/flag-uk.png"; + document.getElementById('flag_top2').src = "imgs/flags/flag-uk.png"; + + document.getElementById('textjouerr').innerHTML = 'PLAY'; + + //Traduction classement + document.getElementById('classementtxt').textContent = 'Ranking - solo'; + document.getElementById('premier').textContent = '1st'; + document.getElementById('deuxieme').textContent = '2nd'; + document.getElementById('troisieme').textContent = '3rd'; + + //Traduction paramètres + document.getElementById('SettingName').textContent = 'Settings'; + + + + //Traduction des règles + document.getElementById('lesRegles').textContent = 'The Rules'; + document.getElementById('textRules').textContent = 'Swish : Set of 60 cards each composed of balls and hoops, 4 different colors possible. 16 cards are placed on a table and the player has to lay cards on top of each other in such a way that each ball is in the same color hoop as another card.' + + document.getElementById("textmode").textContent = "" + allModeEngl[selectionMode] + + } +} diff --git a/SwichGIT/src/js/menu.js b/SwichGIT/src/js/menu.js index 04b8e31..d0e4caf 100644 --- a/SwichGIT/src/js/menu.js +++ b/SwichGIT/src/js/menu.js @@ -11,7 +11,7 @@ function ableCache(formName){ cacheName = "cache"+formName; const pos = FormeSelect.indexOf(formName); if (pos > -1) { - FormeSelect.splice(pos, 1); + FormeSelect.splice(pos, 1); } document.getElementById(cacheName).style.display = "block"; } @@ -24,9 +24,9 @@ function disableCache(formName){ FormeSelect.push(formName); for(const form in ListeClassForme){ //si la couleur est dans la liste selectionnée - if(formName == ListeClassForme[form]){ + if(formName == ListeClassForme[form]){ //recuperer la position de la couleur dans laquel on va le mettre - var positionColor = FormeSelect.length - 1; + var positionColor = FormeSelect.length - 1; var recupCouleur = getComputedStyle(document.body).getPropertyValue('--'+ListeCouleurModif[form]); var dansQuelCouleur = '--'+ListeCouleur[positionColor]; @@ -61,7 +61,8 @@ function varColorToHex(color){ } function settingOpen(){ - var elements = document.getElementsByClassName("pcr-button"); + //document.getElementById("iddelapartie").style.visibility = "hidden"; + var elements = document.getElementsByClassName("pcr-button"); for (var i = 0; i < elements.length; i++) { elements[i].classList.add(ListeClassForme[i]); } @@ -85,7 +86,7 @@ function recupCookies(){ var aString = theCookies[i-1].substring(8); if(aString != "undefined"){ FormeCookie.push(aString); - } + } } for(const form in FormeCookie) @@ -95,13 +96,13 @@ function recupCookies(){ } } - console.log(FormeCookie); + console.log(FormeCookie); console.log("Formes select : "+FormeSelect); } function affichageParamMulti(num){ - //si 1 affichage, si 0 on cache + //si 1 affichage, si 0 on cachell if(num == 1){ document.getElementById("multiParams").style.display = "block"; } else { diff --git a/SwichGIT/src/mysqlitedb.db b/SwichGIT/src/mysqlitedb.db new file mode 100644 index 0000000000000000000000000000000000000000..cf70ad2a373d8e2b95ac3ed8d11ecc3f78248f06 GIT binary patch literal 376832 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%0AA-^3h@=8it{ka`ybBR?V~; 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%0DlP4p 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

0foK=5fA4PI$#r z4?(s5myaC^jfMAz3jWjn&MQ1S|Bv|(=iiyX9-fbPV(wp$_;mknID!9KW;^qnnO7X~ z>HZI;Zcojp&PaulpHDuLygPYGlAi8=gs1v{J<^Q4HF7X=LF8C|s(*OD{~iE%_rTNf z$KnsfZ;X${_s5=zJzo5L?4jZZiuO$f(EVpZpMrn%zhZa%TX;{}l071bfb6gF$Brz6 zubqLOj73N|Fyh-IFD?qzyGkRI<>j^c(i(0?JTpGyV7L^jGmv8=O}1HMs!5?b1I1=U zJy1;w)fs5k47I7P5x}ZRp*jQ2nvwQMp*jO$&0uqA*v5Q7BZcY=q|M0iqI-Z%Q>e~B zcg@)6fHf&pXW(9IhC+1)?zLtpRA(SfVX%+T%l0OP>I~Gqrx}Dn*cqfyeWJg6VYyOS z8tO$Cegq(e>I@9Ja8QTyttaN7zX};>TsXC9XYeWsG%lP}**;RJ&Kh%e1`$IOshau@ zH`sw0$mWPZtr)(lniQ%taF;nER5f2JHIg}!WgFU6lR|aY7!1{+O&Uz$YmsMTl)#IS zKGA>J)fc`N{tk|XkNLQZLF+9RKOg?EK=MjJo~QxU(gh2khgI_Kff$X3ajTZDVmLrr z31~LF(W#~`Z8$($31+xpnJhWyArRm4J$@ zg||0#xx@k5CIcM+o1hvBuNYVf0R)Vlx=1w?2Et0fj}UEJR!yp*Ffh0h08BkqO{$?V zaE~mZNqHVyS@2blFfKhbP^_Ai=P_`Pz`99!9s_9xjb+Kk#Ak_#diCc^(7Fm+e~B zl;<&!XAqYPDOOF&^B8D+nMUxkR!z$D7?|@B)JL;$RFm>N27)g`1EV(e9~?F1c?@Jn z;WkZq9s|*rfexz?^{Xc3c?>iT#c$J?hH6rt$H1i45Y&jORg>~O2C_qOd89m#flzh; zeStobM#}RTxYyQ7c^(5@bA-WT3#v(Z9s`3_FgBw0Cgphy#4ec!!0`;~JP#ZX-}^0j&fokWUfdcnj_>GS`w*kXvX z^c?)UznOR|JRk3Z#IZ8>j=d*#M{MzkZwWAUgZuM0{5x+2?EVkl3iwd!P--D{W-6Tg zLh_No`~NPDmZQ1I9+d(&{||){U%~vpV`XR#e)l)uvlIc@Co%tLnQBq4H{IE}vN}Au zI5N`aJ1Jxw$o8!W;(yBZ7)TqEiC8U=ayoJhyBiul&M#}XV7_*mti>5`n9s|vWM5>^h@UK&~DA!}4@c@LdO;fJNK=J^_OZmVq)uM2n zf#?CCXTC-zoWgYmnhl9YLGz?q6s|Kc7_J8ir*NHt6d#GTpjs5JGtiBXkZ|aQYEih( zKn~Zjmo)137KQ5!B;rJ*(4ugCw!dSnt8;RBNSmYnXPTt1sTPIn4CD<7F}?!;zA0R1 zV9*=^O0=sMh3gD7=4koGj;I!e>kQ1%R8Z&qKb=aoa=w@1yx!2`T2Ff`>+jbL45$hk zct*Ot{{lW-wPJGAyjqb+yDLN`@W{?ywIUK|_G>-Y!6kFFJc75ATXPJq>i?VNkrsvP z!-E|&T?Zz+hRdRuVHRPF!gU6kaGl0PGp`-jSN7aGinR9qpQeb}c&;t}~D~Yj^vnaGil>`OD3N!gU6w zu}^kJY||93GZ2?Qbq>B`ffTMYkg`V;Nmw9->kLG5)12`U*x+e z2AX1qHpgHe>8O{1^hPmbHnxv+)XPATJyIXrTXfXRK$mE%@Jzpp{Hv5U`iTDcRt9_U z84^h5xXa33Ac1DHwu-e*(0IB88gtaZ;2KmCm~&Opm1?z1Ae*DB@iYlE=7=+_jR(iA zTBk~&i5-1j$jV?ar%0gLji_^!eyP^U5@@nVJ0|@f5Vr1@KodI>5Lwjbc#;I7cZ81v z8qpk2l)zx@2w(u|f2#F-2@HBipvcm5f&{weNX`$uEXZ(?vp?;N5s%@ zEsf8XKrlxF;y5fl&yql6jxJucj*&oPj#@37hH7~dXuPAGnKlUwZq`AKMG15_Yc`&O z1hRL;0sB3GDa=bCm?QGy5Z;lGUlSUS{#B&#XyF}&R~HTxj?e!~{?GHjn}2P7IDzVojo*$cv{~&f+{FBk2#D6dPSMl4-nf}qgM;SQEz|YHoI!txU@t&#jU|(se ze<>JsfS2$+W0yKiq#$oe$(+ctfy)<82=d)&r>bB&xJK&@&j5)6*(T&nw1*q zB-g02P1AiYtnmn2JQ@$(=fXhR;*AqC`&*0db73HvW3XxT^mLyK1Klm&C~j}jeJ%{N zqt%TXoNA5xgXW56n+0kYVLG5%V-hH~H~lpn^r!^l_I3omMA;HK&~jDP9j{j Uu9HBqR;jWN9ZFMh}l?f?J) literal 0 HcmV?d00001 diff --git a/SwichGIT/src/test.php b/SwichGIT/src/test.php new file mode 100644 index 0000000..e1ec199 --- /dev/null +++ b/SwichGIT/src/test.php @@ -0,0 +1,4 @@ +