Untitled
Anonymous
plain_text
06/19/2024 5:07 PM
2.6 KB
26
Indexable
function verifieVictoire(couleur, colonne, cellule) {
// couleur : un 1 ou un 2 (jaune ou rouge)
let compteur = 0;
// Horizontal : vérifier qu'on a au moins 4 pièces alignées
let x = colonne;
let y = cellule;
// on regarde à droite
/**
* Récapitulons les étapes de vérification :
* - Est ce que j'ai déjà 4 pions alignés ?
* - Est ce que je suis sorti du tableau ?
* - Est ce que sur la case actuelle il y a ma couleur ?
*/
while (compteur < 4 && x < 7 && grille.value[x][y] === couleur) {
x++;
compteur++;
}
if (compteur > 3) return true;
// on se replace et on regarde à gauche
x = colonne - 1;
while (compteur < 4 && x >= 0 && grille.value[x][y] === couleur) {
x--;
compteur++;
}
if (compteur > 3) return true;
// Vertical
compteur = 0;
x = colonne;
y = cellule;
while (compteur < 4 && y < 6 && grille.value[x][y] === couleur) {
y++;
compteur++;
}
if (compteur > 3) return true;
y = cellule - 1;
while (compteur < 4 && y >= 0 && grille.value[x][y] === couleur) {
y--;
compteur++;
}
if (compteur > 3) return true;
// Diagonale droite
compteur = 0;
x = colonne;
y = cellule;
while (compteur < 4 && y < 6 && x < 7 && grille.value[x][y] === couleur) {
x++;
y++;
compteur++;
}
if (compteur > 3) return true;
x = colonne - 1;
y = cellule - 1;
while (compteur < 4 && y >= 0 && x >= 0 && grille.value[x][y] === couleur) {
x--;
y--;
compteur++;
}
if (compteur > 3) return true;
// Diagonale gauche
compteur = 0;
x = colonne;
y = cellule;
while (compteur < 4 && y < 6 && x >=0 && grille.value[x][y] === couleur) {
x--;
y++;
compteur++;
}
if (compteur > 3) return true;
x = colonne + 1;
y = cellule - 1;
while (compteur < 4 && y >= 0 && x < 7 && grille.value[x][y] === couleur) {
x++;
y--;
compteur++;
}
if (compteur > 3) return true;
return false;
}Editor is loading...
Leave a Comment