TP03_EX02
This commit is contained in:
parent
2cfb5211c3
commit
0d2bffb2a0
@ -1 +1,117 @@
|
||||
// TODO
|
||||
document.addEventListener('DOMContentLoaded', chargementPage);
|
||||
var listeAmpouleView;
|
||||
var conteneurJeu;
|
||||
var perduView;
|
||||
var gagneView;
|
||||
var btnStart;
|
||||
var scoreView;
|
||||
|
||||
var listeEtatAmpouleInitiale = [];
|
||||
var listeEtatAmpoule = [];
|
||||
var ALLUMEE = 1;
|
||||
var ETEINTE = 0;
|
||||
var url = ["./images/off.png", "./images/on.png"];
|
||||
var tempsDebut = 1000;
|
||||
var isGameStart = false;
|
||||
var isPlaying = false;
|
||||
var score;
|
||||
var scoreMax;
|
||||
|
||||
|
||||
function chargementPage(event){
|
||||
conteneurJeu = document.getElementsByClassName('columns')[1];
|
||||
listeAmpouleView = document.querySelectorAll('img');
|
||||
perduView = document.getElementById("perdu");
|
||||
gagneView = document.getElementById("gagne");
|
||||
btnStart = document.querySelector('button');
|
||||
scoreView = document.querySelector('progress');
|
||||
|
||||
conteneurJeu.addEventListener('click', clicAmpoule);
|
||||
btnStart.addEventListener('click', start);
|
||||
}
|
||||
|
||||
function clicAmpoule(event){
|
||||
if (event.target.tagName === 'IMG' && isPlaying && event.target.src !== url[ALLUMEE]){
|
||||
var index = findIndex(listeAmpouleView, event.target);
|
||||
listeEtatAmpoule[index] = ALLUMEE;
|
||||
if (listeEtatAmpoule[index] !== listeEtatAmpouleInitiale[index]){
|
||||
perdu();
|
||||
}
|
||||
else{
|
||||
event.target.src = url[ALLUMEE];
|
||||
score ++;
|
||||
scoreView.value = score;
|
||||
if (score >= scoreMax){
|
||||
gagne();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allumerAleatoire(proba=0.25){
|
||||
listeAmpouleView.forEach(function(image, index) {
|
||||
if (Math.random() <= proba){
|
||||
image.src = url[ALLUMEE];
|
||||
listeEtatAmpouleInitiale[index] = ALLUMEE;
|
||||
scoreMax ++;
|
||||
}
|
||||
else{
|
||||
listeEtatAmpouleInitiale[index] = ETEINTE;
|
||||
}
|
||||
})
|
||||
scoreView.max = scoreMax;
|
||||
scoreView.value = 0;
|
||||
}
|
||||
|
||||
function eteindre(){
|
||||
listeAmpouleView.forEach(function(image, index) {
|
||||
image.src = url[ETEINTE];
|
||||
listeEtatAmpoule[index] = 0;
|
||||
})
|
||||
}
|
||||
|
||||
function start(){
|
||||
if (!isGameStart && !isPlaying){
|
||||
isGameStart = true;
|
||||
isPlaying = false;
|
||||
score = 0;
|
||||
scoreMax = 0;
|
||||
perduView.style.display = "none";
|
||||
gagneView.style.display = "none";
|
||||
eteindre();
|
||||
allumerAleatoire(0.4);
|
||||
setTimeout(jouer, tempsDebut);
|
||||
}
|
||||
}
|
||||
|
||||
function jouer(){
|
||||
isGameStart = false;
|
||||
isPlaying = true;
|
||||
eteindre();
|
||||
}
|
||||
|
||||
function perdu(){
|
||||
perduView.style.display = "block";
|
||||
isPlaying = false;
|
||||
setTimeout(perdu2, tempsDebut)
|
||||
}
|
||||
|
||||
function perdu2(){
|
||||
listeAmpouleView.forEach(function(image, index) {
|
||||
image.src = url[listeEtatAmpouleInitiale[index]];
|
||||
})
|
||||
}
|
||||
|
||||
function gagne(){
|
||||
gagneView.style.display = "block";
|
||||
isPlaying = false;
|
||||
}
|
||||
|
||||
function findIndex(tableau, element){
|
||||
for (var i = 0; i < tableau.length; i++) {
|
||||
if (tableau[i] === element) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
@ -23,16 +23,37 @@
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
<img src="./images/off.png" alt="" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user