Compare commits
3 commits
5870054bd9
...
5b0994cabb
Author | SHA1 | Date | |
---|---|---|---|
|
5b0994cabb | ||
|
3486f90658 | ||
|
99b1fa016a |
1 changed files with 29 additions and 40 deletions
69
demineur.js
69
demineur.js
|
@ -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 hauteur = 7;
|
||||
let largeur = 7;
|
||||
let number_mines = 10 ;
|
||||
let first_click = true ;
|
||||
let arret=0;
|
||||
let cases_restantes = hauteur*largeur - number_mines ;
|
||||
|
||||
document.getElementById('options-button').addEventListener('click', () => {
|
||||
document.getElementById('options-popup').classList.add('show');
|
||||
|
@ -30,15 +19,10 @@ document.getElementById('save-options').addEventListener('click', () => {
|
|||
largeur = parseInt(document.getElementById('largeur').value);
|
||||
number_mines = parseInt(document.getElementById('number_mines').value);
|
||||
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) {
|
||||
return Math.floor(Math.random() * maxi);
|
||||
}
|
||||
|
@ -120,22 +104,22 @@ function sleep(ms){
|
|||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
async function chrono(){
|
||||
let k=document.getElementById("temps").value;
|
||||
const myButton = document.getElementById("fin_game");
|
||||
let arret=0;
|
||||
myButton.addEventListener("click",() =>{arret=1;})
|
||||
|
||||
while(arret==!1) {
|
||||
let k=document.getElementById("temps").value;
|
||||
const myButton = document.getElementById("fin_game");
|
||||
arret = 0 ;
|
||||
|
||||
while(arret==!1) {
|
||||
await sleep(1000);
|
||||
if (arret==!1){
|
||||
document.getElementById("temps").value=document.getElementById("temps").value*1+1;
|
||||
document.getElementById("temps").value=document.getElementById("temps").value*1+1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
async function reset(){
|
||||
|
||||
document.getElementById("temps").value=0;
|
||||
document.getElementById("temps").value=0;
|
||||
|
||||
}
|
||||
|
||||
|
@ -192,6 +176,12 @@ function selectImage(idCase) {
|
|||
chrono() ;
|
||||
}
|
||||
|
||||
if (grille[y][x] === 9 && arret == 0) {
|
||||
arret = 1;
|
||||
alert("Vous avez perdu !");
|
||||
MontrerMines();
|
||||
}
|
||||
|
||||
if (grille[y][x] == 0) {
|
||||
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++) {
|
||||
|
@ -211,18 +201,15 @@ function changeImage(targetCase) {
|
|||
if (!(targetCase.classList.contains("buttonFlagged"))) {
|
||||
targetCase.classList.add("buttonRevealed") ;
|
||||
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) {
|
||||
alert("Vous avez perdu !");
|
||||
MontrerMines();
|
||||
} else if (jeuFini()) {
|
||||
alert("Félicitations ! Vous avez gagné !");
|
||||
cases_restantes = cases_restantes - 1 ;
|
||||
|
||||
if (cases_restantes == 0 && arret == 0) {
|
||||
arret = 1 ;
|
||||
alert("Félicitations ! Vous avez gagné !");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -231,6 +218,8 @@ function resetJeu(mouseEvent) {
|
|||
divJeu.removeChild(divJeu.children[0]) ;
|
||||
mouseEvent.target.removeEventListener("click",resetJeu) ;
|
||||
grilleButtons(hauteur, largeur) ;
|
||||
cases_restantes = hauteur*largeur - number_mines ;
|
||||
arret = 1 ;
|
||||
first_click = true ;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue