Ajout + Correction

master
yasevret 4 years ago
parent 9c6b237fc8
commit 437023ec09

@ -146,7 +146,7 @@
<div id="pageGame"> <div id="pageGame">
<div class="menuhaut"> <div class="menuhaut">
<div id="Redistribution"> <div id="Redistribution">
<a onclick="creePartieDeTest()" id="relancerbtn"> <a onclick="creePartieInfini()" id="relancerbtn">
<div id="contourbuttonvalider"> <div id="contourbuttonvalider">
<div class="bouttonvalider"> <div class="bouttonvalider">
<h1 id="textjouer2">RELANCER</h1> <h1 id="textjouer2">RELANCER</h1>

@ -9,6 +9,8 @@ var darkseconda = "#393939";
var darktercia = "#606060"; var darktercia = "#606060";
var carteselect = []; var carteselect = [];
var deckPartie = []; //Ensemble des cartes affichées à l'écran var deckPartie = []; //Ensemble des cartes affichées à l'écran
var TasDuJEU = []; // Ensemble de toutes les cartes présente dans le jeu
@ -42,9 +44,13 @@ class Carte {
var ajouté = true; var ajouté = true;
for (var j = 0; j < this.SesFigures.length; j++) { for (var j = 0; j < this.SesFigures.length; j++) {
if (i == this.SesFigures[j].X + (this.SesFigures[j].Y * 3)) { if (i == this.SesFigures[j].X + (this.SesFigures[j].Y * 3)) {
try {
ajouté = false; ajouté = false;
var uneFigure = new Figure(this.SesFigures[j].type[0], this.SesFigures[j].forme, this.SesFigures[j].X, this.SesFigures[j].Y); var uneFigure = new Figure(this.SesFigures[j].type, this.SesFigures[j].forme, this.SesFigures[j].X, this.SesFigures[j].Y);
divconteneur.appendChild(uneFigure.CodeHTML); divconteneur.appendChild(this.SesFigures[j].CodeHTML);
} catch (e) {
window.alert(this.SesFigures[j].type.length).length
}
} }
} }
if (ajouté) { if (ajouté) {
@ -146,7 +152,9 @@ class Figure {
this.X = Cox; this.X = Cox;
this.Y = Coy; this.Y = Coy;
this.type = []; this.type = [];
this.type.push(leType); for (var i = 0; i < leType.length; i++) {
this.type.push(leType[i]);
}
this.forme = forme; this.forme = forme;
var pos = this.X + this.Y * 3; var pos = this.X + this.Y * 3;
var divcase = document.createElement('div'); var divcase = document.createElement('div');
@ -237,9 +245,9 @@ const FormeFigure = {
}; };
const TypeFigure = { const TypeFigure = {
Petit: 'petit', Petit: 'p',
Moyen: 'moyen', Moyen: 'm',
Grand: 'grand' Grand: 'g'
}; };
@ -319,36 +327,79 @@ function rechargerGAME() {
//================================================================================================================================================================ //================================================================================================================================================================
//Fonction créations de game //Fonction créations de game
function genererTouteslesCartes3_4Possibles() { function genererTouteslesCartes3_4Possibles(){
deckPartie = []; deckPartie = [];
carteselect = []; carteselect = [];
while (document.getElementById("containcards").firstElementChild != null) { while (document.getElementById("containcards").firstElementChild != null) {
document.getElementById("containcards").firstElementChild.remove(); document.getElementById("containcards").firstElementChild.remove();
} }
for (var k = 0; k < 2; k++) { for (var k = 0; k < 2; k++) {
for (var j = 0; j < 2; j++) { for (var j = 0; j < 2; j++) {
for (var i = 0; i < 12; i++) { for (var i = 0; i < 12; i++) {
var AllFigure = []; var AllFigure = [];
AllFigure.push(new Figure(TypeFigure.Petit, FormeFigure.Rond, k, j)); AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, k, j));
if (i != k + 3 * j) { if (i != k + 3 * j) {
if (k == 0) { if (k == 0) {
AllFigure.push(new Figure(TypeFigure.Moyen, FormeFigure.Rond, i % 3, Math.floor(i / 3))); AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3)));
var uneCarte = new Carte(i + 12 * j , AllFigure); var uneCarte = new Carte(deckPartie.length + 1, AllFigure);
if (!doublonInterdit(uneCarte)) {
var unDoublon = copieCarte(uneCarte);
unDoublon.identifiant += 1;
deckPartie.push(unDoublon);
}
deckPartie.push(uneCarte); deckPartie.push(uneCarte);
document.getElementById("containcards").appendChild(uneCarte.link);
} else if (i != 2 && i != 5 && i != 8 && i != 11) { } else if (i != 2 && i != 5 && i != 8 && i != 11) {
AllFigure.push(new Figure(TypeFigure.Moyen, FormeFigure.Rond, i % 3, Math.floor(i / 3))); AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, i % 3, Math.floor(i / 3)));
var uneCarte = new Carte(i + 12 * (1 + k + j), AllFigure); var uneCarte = new Carte(deckPartie.length + 1, AllFigure);
if (!doublonInterdit(uneCarte)) {
var unDoublon = copieCarte(uneCarte);
unDoublon.identifiant += 1;
deckPartie.push(unDoublon);
}
deckPartie.push(uneCarte); deckPartie.push(uneCarte);
document.getElementById("containcards").appendChild(uneCarte.link);
} }
} }
} }
} }
} }
afficherCartes(deckPartie)
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 creePartieDeTest() { function creePartieClassique() {
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)
deckPartie.push(copieCarte(TasDuJEU[index]));
}
afficherCartes(deckPartie);
}
function creePartieInfini() {
deckPartie = []; deckPartie = [];
carteselect = []; carteselect = [];
while (document.getElementById("containcards").firstElementChild != null) { while (document.getElementById("containcards").firstElementChild != null) {
@ -361,7 +412,7 @@ function creePartieDeTest() {
Cox1 = getRandom(0, 2); Cox1 = getRandom(0, 2);
Coy1 = getRandom(0, 3); Coy1 = getRandom(0, 3);
AllFigure.push(new Figure(TypeFigure.Petit, FormeFigure.Rond, Cox1, Coy1)); AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1));
Cox2 = getRandom(0, 2); Cox2 = getRandom(0, 2);
Coy2 = getRandom(0, 3); Coy2 = getRandom(0, 3);
@ -370,7 +421,7 @@ function creePartieDeTest() {
Cox2 = getRandom(0, 2); Cox2 = getRandom(0, 2);
Coy2 = getRandom(0, 3); Coy2 = getRandom(0, 3);
} }
AllFigure.push(new Figure(TypeFigure.Moyen, FormeFigure.Rond, Cox2, Coy2)); AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2));
//Code de Génération de Figure //Code de Génération de Figure
var uneCarte = new Carte(j, AllFigure); var uneCarte = new Carte(j, AllFigure);
@ -398,7 +449,7 @@ function remplacerLaCarte(uneCarte) {
Cox1 = getRandom(0, 2); Cox1 = getRandom(0, 2);
Coy1 = getRandom(0, 3); Coy1 = getRandom(0, 3);
AllFigure.push(new Figure(TypeFigure.Petit, FormeFigure.Rond, Cox1, Coy1)); AllFigure.push(new Figure(new Array(TypeFigure.Petit), FormeFigure.Rond, Cox1, Coy1));
Cox2 = getRandom(0, 2); Cox2 = getRandom(0, 2);
Coy2 = getRandom(0, 3); Coy2 = getRandom(0, 3);
@ -407,7 +458,8 @@ function remplacerLaCarte(uneCarte) {
Cox2 = getRandom(0, 2); Cox2 = getRandom(0, 2);
Coy2 = getRandom(0, 3); Coy2 = getRandom(0, 3);
} }
AllFigure.push(new Figure(TypeFigure.Moyen, FormeFigure.Rond, Cox2, Coy2)); AllFigure.push(new Figure(new Array(TypeFigure.Moyen), FormeFigure.Rond, Cox2, Coy2));
//Code de Génération de Figure
var newCarte = new Carte(pos + 1, AllFigure); var newCarte = new Carte(pos + 1, AllFigure);
deckPartie[pos] = newCarte; deckPartie[pos] = newCarte;
} }
@ -493,8 +545,8 @@ function chercheCombi2() {
tab.splice(0, DeckTeste.length); tab.splice(0, DeckTeste.length);
tabCode.splice(0, DeckTeste.length); tabCode.splice(0, DeckTeste.length);
DeckTeste.push(deckPartie[i]); DeckTeste.push(copieCarte(deckPartie[i]));
DeckTeste.push(deckPartie[j + i + 1]); DeckTeste.push(copieCarte(deckPartie[j + i + 1]));
for (var h = 0; h < DeckTeste.length; h++) { for (var h = 0; h < DeckTeste.length; h++) {
@ -592,7 +644,10 @@ function test() {
window.alert("Selection Vide"); window.alert("Selection Vide");
return; return;
} else if (carteselect.length < 2) { } else if (carteselect.length < 2) {
window.alert("Selection Trop Petite"); //window.alert("Selection Trop Petite");
var leCarte = copieCarte(carteselect[0]);
document.getElementById("containcards").appendChild(leCarte.link);
return; return;
} else { } else {
var copie = []; var copie = [];
@ -618,7 +673,7 @@ function test() {
if (!solution) { if (!solution) {
window.alert("J'ai une solution chef !!!!"); window.alert("J'ai une solution chef !!!!");
} }
window.alert(TasDuJEU.length)
} }
} catch (e) { } catch (e) {
window.alert(e); window.alert(e);
@ -640,16 +695,11 @@ function copieCarte(uneCarte) {
if (uneCarte == null) { if (uneCarte == null) {
return null; return null;
} }
var carte = new Carte(uneCarte.getIdentifiant, uneCarte.SesFigures); var AllFigure = [];
carte.SesFigures = new Array();
for (var i = 0; i < uneCarte.SesFigures.length; i++) { for (var i = 0; i < uneCarte.SesFigures.length; i++) {
carte.SesFigures.push(new Figure(uneCarte.SesFigures[i].type[0], uneCarte.SesFigures[i].getForme, uneCarte.SesFigures[i].getX, uneCarte.SesFigures[i].getY)); AllFigure.push(new Figure(uneCarte.SesFigures[i].type, uneCarte.SesFigures[i].forme, uneCarte.SesFigures[i].X, uneCarte.SesFigures[i].Y));
if (uneCarte.SesFigures[i].type.length > 1) {
for (var j = 1; j < uneCarte.SesFigures[i].type.length; j++) {
carte.SesFigures[carte.SesFigures.length - 1].type.push(uneCarte.SesFigures[i].type[j]);
}
}
} }
var carte = new Carte(uneCarte.getIdentifiant, AllFigure);
carte.Matrice = copieMatrice(uneCarte.Matrice, uneCarte.row, uneCarte.column); carte.Matrice = copieMatrice(uneCarte.Matrice, uneCarte.row, uneCarte.column);
return carte; return carte;
} }
@ -711,9 +761,9 @@ function AssemblageARBRE(TasDeCarte, Carte) {
return tab; return tab;
} }
tab.push(AssemblageARBRE(uneTable, copieCarte(uneTable[0]))); tab.push(AssemblageARBRE(uneTable, copieCarte(uneTable[0])));
tab.push(AssemblageARBRE(uneTable, Horizontale(uneTable[0]))); tab.push(AssemblageARBRE(uneTable, Horizontale(copieCarte(uneTable[0]))));
tab.push(AssemblageARBRE(uneTable, Verticale(uneTable[0]))); tab.push(AssemblageARBRE(uneTable, Verticale(copieCarte(uneTable[0]))));
var derniereCarte = Horizontale(Verticale(uneTable[0])); var derniereCarte = Horizontale(Verticale(copieCarte(uneTable[0])));
tab.push(AssemblageARBRE(uneTable, derniereCarte)); tab.push(AssemblageARBRE(uneTable, derniereCarte));
for (var i = 0; i < tab.length; i++) { for (var i = 0; i < tab.length; i++) {
for (var j = 0; j < tab[i].length; j++) { for (var j = 0; j < tab[i].length; j++) {
@ -873,6 +923,24 @@ function ajouterplayer(event){
*/ */
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;
}

Loading…
Cancel
Save