Compare commits

...

3 commits

Author SHA1 Message Date
Bocquel Raphael
5b0994cabb changement reset 2025-01-01 17:11:00 +01:00
Bocquel Raphael
3486f90658 Merge branch 'main' of https://git.etud.insa-toulouse.fr/bocquel/Projet_JS 2025-01-01 17:08:45 +01:00
Bocquel Raphael
99b1fa016a changement condition victoire 2025-01-01 17:08:29 +01:00

View file

@ -1,21 +1,10 @@
class Case_grille {
constructor(x, y) {
this.posX = x;
this.posY = y;
this.isMine = false;
this.number = 0;
this.hidden = true;
}
}
let grille = []; let grille = [];
let hauteur = 7; let hauteur = 7;
let largeur = 7; let largeur = 7;
let number_mines = 10 ; let number_mines = 10 ;
let first_click = true ; let first_click = true ;
let arret=0;
let cases_restantes = hauteur*largeur - number_mines ;
document.getElementById('options-button').addEventListener('click', () => { document.getElementById('options-button').addEventListener('click', () => {
document.getElementById('options-popup').classList.add('show'); document.getElementById('options-popup').classList.add('show');
@ -30,15 +19,10 @@ document.getElementById('save-options').addEventListener('click', () => {
largeur = parseInt(document.getElementById('largeur').value); largeur = parseInt(document.getElementById('largeur').value);
number_mines = parseInt(document.getElementById('number_mines').value); number_mines = parseInt(document.getElementById('number_mines').value);
document.getElementById('options-popup').classList.remove('show'); document.getElementById('options-popup').classList.remove('show');
resetGame(); resetJeu();
}); });
function resetGame() {
first_click = true;
document.getElementById('jeu').innerHTML = '';
creerGrille(hauteur, largeur, number_mines);
grilleButtons(hauteur, largeur);
}
function getRandomInt(maxi) { function getRandomInt(maxi) {
return Math.floor(Math.random() * maxi); return Math.floor(Math.random() * maxi);
} }
@ -122,8 +106,7 @@ function sleep(ms){
async function chrono(){ async function chrono(){
let k=document.getElementById("temps").value; let k=document.getElementById("temps").value;
const myButton = document.getElementById("fin_game"); const myButton = document.getElementById("fin_game");
let arret=0; arret = 0 ;
myButton.addEventListener("click",() =>{arret=1;})
while(arret==!1) { while(arret==!1) {
await sleep(1000); await sleep(1000);
@ -132,6 +115,7 @@ async function chrono(){
} }
} }
} }
async function reset(){ async function reset(){
@ -192,6 +176,12 @@ function selectImage(idCase) {
chrono() ; chrono() ;
} }
if (grille[y][x] === 9 && arret == 0) {
arret = 1;
alert("Vous avez perdu !");
MontrerMines();
}
if (grille[y][x] == 0) { if (grille[y][x] == 0) {
for (var m = Math.max(0, y - 1); m < Math.min(hauteur, y + 2); m++) { for (var m = Math.max(0, y - 1); m < Math.min(hauteur, y + 2); m++) {
for (var n = Math.max(0, x - 1); n < Math.min(largeur, x + 2); n++) { for (var n = Math.max(0, x - 1); n < Math.min(largeur, x + 2); n++) {
@ -211,14 +201,11 @@ function changeImage(targetCase) {
if (!(targetCase.classList.contains("buttonFlagged"))) { if (!(targetCase.classList.contains("buttonFlagged"))) {
targetCase.classList.add("buttonRevealed") ; targetCase.classList.add("buttonRevealed") ;
targetCase.style.background= selectImage(targetCase.id) ; targetCase.style.background= selectImage(targetCase.id) ;
const coords = targetCase.id.split("_");
const y = parseInt(coords[0]);
const x = parseInt(coords[1]);
if (grille[y][x] === 9) { cases_restantes = cases_restantes - 1 ;
alert("Vous avez perdu !");
MontrerMines(); if (cases_restantes == 0 && arret == 0) {
} else if (jeuFini()) { arret = 1 ;
alert("Félicitations ! Vous avez gagné !"); alert("Félicitations ! Vous avez gagné !");
} }
} }
@ -231,6 +218,8 @@ function resetJeu(mouseEvent) {
divJeu.removeChild(divJeu.children[0]) ; divJeu.removeChild(divJeu.children[0]) ;
mouseEvent.target.removeEventListener("click",resetJeu) ; mouseEvent.target.removeEventListener("click",resetJeu) ;
grilleButtons(hauteur, largeur) ; grilleButtons(hauteur, largeur) ;
cases_restantes = hauteur*largeur - number_mines ;
arret = 1 ;
first_click = true ; first_click = true ;
} }