Ajout Mode de Jeu 3*2

master
yasevret 4 years ago
parent 5f4c4d770f
commit 03e7b5b45b

@ -10,7 +10,7 @@ var darktercia = "#606060";
var carteselect = [];
var deckPartie = []; //Ensemble des cartes affichees a l'ecran
var TasDuJEU = []; // Ensemble de toutes les cartes presente dans le jeu
var allMode = ["Solo", "Infini"]; // Défini tout les modes de Jeu
var allMode = ["Solo", "Infini", "Bac"]; // Défini tout les modes de Jeu
var allDimension = ["4 * 3", "3 * 3", "3 * 2"];
var selectionMode = 0;
var selectionDiemension = 0;
@ -87,7 +87,7 @@ class Carte {
divcase.className = "item-form";
var ajoute = true;
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].pos) {
try {
ajoute = false;
var uneFigure = new Figure(this.SesFigures[j].type, this.SesFigures[j].forme, this.SesFigures[j].X, this.SesFigures[j].Y);
@ -195,15 +195,20 @@ class Carte {
class Figure {
constructor(leType, forme, Cox, Coy) {
constructor(leType, forme, Cox, Coy, couleur) {
this.X = Cox;
this.Y = Coy;
this.type = [];
for (var i = 0; i < leType.length; i++) {
this.type.push(leType[i]);
}
this.couleur = couleur;
this.forme = forme;
var pos = this.X + this.Y * 3;
if (selectionDiemension == 2) {
this.pos = this.X + this.Y * 2;
} else {
this.pos = this.X + this.Y * 3;
}
var divcase = document.createElement('div');
divcase.className = "item-form";
//Pour chaque type on regarde les formes
@ -220,25 +225,42 @@ class Figure {
var unCercle = document.createElement('div');
unCercle.className = "anneau";
unCercle.style.backgroundColor = "var(--colorbase)";
if (selectionDiemension == 0) {
if (pos == 0 || pos == 2 || pos == 9 || pos == 11) {
if (this.couleur != null) {
if (this.couleur == CouleurFigure.Couleur2) {
unCercle.style.backgroundColor = "var(--colorone)";
}
if (pos == 1 || pos == 10) {
} else if (this.couleur == CouleurFigure.Couleur3) {
unCercle.style.backgroundColor = "var(--colortwo)";
}
if (pos == 4 || pos == 7) {
} else if (this.couleur == CouleurFigure.Couleur4) {
unCercle.style.backgroundColor = "var(--colorthree)";
}
} else if (selectionDiemension == 1) {
if (pos == 0 || pos == 2 || pos == 6 || pos == 8) {
unCercle.style.backgroundColor = "var(--colorone)";
}
if (pos == 1 || pos == 7) {
unCercle.style.backgroundColor = "var(--colortwo)";
}
if (pos == 4) {
unCercle.style.backgroundColor = "var(--colorthree)";
} else {
if (selectionDiemension == 0) {
this.couleur = CouleurFigure.Couleur1;
if (this.pos == 0 || this.pos == 2 || this.pos == 9 || this.pos == 11) {
unCercle.style.backgroundColor = "var(--colorone)";
this.couleur = CouleurFigure.Couleur2;
}
if (this.pos == 1 || this.pos == 10) {
unCercle.style.backgroundColor = "var(--colortwo)";
this.couleur = CouleurFigure.Couleur3;
}
if (this.pos == 4 || this.pos == 7) {
unCercle.style.backgroundColor = "var(--colorthree)";
this.couleur = CouleurFigure.Couleur4;
}
} else if (selectionDiemension == 1) {
if (this.pos == 0 || this.pos == 2 || this.pos == 6 || this.pos == 8) {
unCercle.style.backgroundColor = "var(--colorone)";
this.couleur = CouleurFigure.Couleur2;
}
if (this.pos == 1 || this.pos == 7) {
unCercle.style.backgroundColor = "var(--colortwo)";
this.couleur = CouleurFigure.Couleur3;
}
if (this.pos == 4) {
unCercle.style.backgroundColor = "var(--colorthree)";
this.couleur = CouleurFigure.Couleur4;
}
}
}
@ -261,25 +283,42 @@ class Figure {
unRond.className = "rond";
unRond.style.backgroundColor = "var(--colorbase)";
if (selectionDiemension == 0) {
if (pos == 0 || pos == 2 || pos == 9 || pos == 11) {
if (this.couleur != null) {
if (this.couleur == CouleurFigure.Couleur2) {
unRond.style.backgroundColor = "var(--colorone)";
}
if (pos == 1 || pos == 10) {
} else if (this.couleur == CouleurFigure.Couleur3) {
unRond.style.backgroundColor = "var(--colortwo)";
}
if (pos == 4 || pos == 7) {
} else if (this.couleur == CouleurFigure.Couleur4) {
unRond.style.backgroundColor = "var(--colorthree)";
}
} else if (selectionDiemension == 1) {
if (pos == 0 || pos == 2 || pos == 6 || pos == 8) {
unRond.style.backgroundColor = "var(--colorone)";
}
if (pos == 1 || pos == 7) {
unRond.style.backgroundColor = "var(--colortwo)";
}
if (pos == 4) {
unRond.style.backgroundColor = "var(--colorthree)";
} else {
if (selectionDiemension == 0) {
this.couleur = CouleurFigure.Couleur1;
if (this.pos == 0 || this.pos == 2 || this.pos == 9 || this.pos == 11) {
unRond.style.backgroundColor = "var(--colorone)";
this.couleur = CouleurFigure.Couleur2;
}
if (this.pos == 1 || this.pos == 10) {
unRond.style.backgroundColor = "var(--colortwo)";
this.couleur = CouleurFigure.Couleur3;
}
if (this.pos == 4 || this.pos == 7) {
unRond.style.backgroundColor = "var(--colorthree)";
this.couleur = CouleurFigure.Couleur4;
}
} else if (selectionDiemension == 1) {
if (this.pos == 0 || this.pos == 2 || this.pos == 6 || this.pos == 8) {
unRond.style.backgroundColor = "var(--colorone)";
this.couleur = CouleurFigure.Couleur2;
}
if (this.pos == 1 || this.pos == 7) {
unRond.style.backgroundColor = "var(--colortwo)";
this.couleur = CouleurFigure.Couleur3;
}
if (this.pos == 4) {
unRond.style.backgroundColor = "var(--colorthree)";
this.couleur = CouleurFigure.Couleur4;
}
}
}
divContainForm.appendChild(unRond);
@ -309,6 +348,13 @@ class Figure {
}
const CouleurFigure = {
Couleur1: 'c1',
Couleur2: 'c2',
Couleur3: 'c3',
Couleur4: 'c4'
}
const FormeFigure = {
Rond: 'rond',
Carre: 'carre',
@ -364,6 +410,9 @@ function journuit() {
//FONCTION GESTION DE GAME
function lancerpartie() {
lesPoints = 0;
var ready = true;
//fonction de creation de partie a changer en fonction du test voulu
if (selectionMode == 0) {
@ -372,8 +421,7 @@ function lancerpartie() {
} else if (selectionDiemension == 1) {
creePartieClassique3_3();
} else if (selectionDiemension == 2) {
ready = false;
window.alert("Mode de Jeu indisponible pour le moment")
creePartieClassique3_2();
}
} else if (selectionMode == 1) {
@ -382,8 +430,10 @@ function lancerpartie() {
} else if (selectionDiemension == 1) {
creePartieInfini(3, 3);
} else if (selectionDiemension == 2) {
creePartieInfini(3, 2);
creePartieInfini3_2(3, 2);
}
} else if (selectionMode == 2) {
bacASable();
}
if (ready) {
document.getElementById("pageAccueil").style.visibility = "hidden";
@ -411,7 +461,11 @@ function redistribuerPlateau() {
redistribuer();
} else if (selectionMode == 1) {
for (var i = 0; i < 16; i++) {
remplacerLaCarte(deckPartie[i])
if (selectionDiemension == 2) {
remplacerLaCarte3_2(deckPartie[i]);
} else {
remplacerLaCarte(deckPartie[i]);
}
}
}
afficherCartes(deckPartie);
@ -446,6 +500,244 @@ function redistribuer() {
//================================================================================================================================================================
//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 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 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 = [];
@ -550,8 +842,6 @@ function creePartieClassique3_3() {
afficherCartes(deckPartie);
}
function genererTouteslesCartes3_4Possibles() {
deckPartie = [];
carteselect = [];
@ -1152,7 +1442,11 @@ function testPourJeuInfini() {
solution = false;
lesPoints += carteselect.length;
document.getElementById("affPoints").textContent = 'Score : ' + lesPoints;
changerlesCartes();
if (selectionDiemension == 2) {
changerlesCartes3_2();
} else {
changerlesCartes();
}
}
}
if (solution) {
@ -1227,7 +1521,7 @@ function copieCarte(uneCarte) {
}
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));
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);
@ -1419,6 +1713,21 @@ function doublonInterdit(uneCarte) {
return false;
}
function bacASable() {
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);
}

Loading…
Cancel
Save