Bonjour à tous,
je vous joins le lien d'un bout de code js sur un jeu pierre/feuille/ciseau, je ne comprend pas pourquoi je me retrouve à perdre lorsque je suis censé gagner,
voici le code https://jsfiddle.net/dyk76zp7/1/
merci d'avance :)
Version imprimable
Bonjour à tous,
je vous joins le lien d'un bout de code js sur un jeu pierre/feuille/ciseau, je ne comprend pas pourquoi je me retrouve à perdre lorsque je suis censé gagner,
voici le code https://jsfiddle.net/dyk76zp7/1/
merci d'avance :)
:salut:
L'égalité (== ou ===) est toujours fausse, car il y a des espaces blancs dans le nom des boutons.
Il faut utiliser trim() : https://developer.mozilla.org/fr/doc...ux/String/trim
Exemple :
Code:
1
2
3
4
5 <button>Pierre</button> <button>Feuille</button> <button>Ciseaux</button> <div class="resultat"></div>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 const buttons = Array.from( document.querySelectorAll( "button" ) ), resultat = document.querySelector( ".resultat" ); for ( const button of buttons ){ button.addEventListener( "click", ev => { const joueur = ( ev.target.textContent ).trim(), robot = ( buttons[ Math.floor( Math.random() * buttons.length ) ].textContent ).trim(); resultat.textContent = ""; if ( joueur === robot ){ resultat.textContent = `egalité : ${ joueur } === ${ robot }`; } else if ( ( joueur === "Pierre" && robot === "Ciseaux" ) || ( joueur === "Feuille" && robot === "Pierre" ) || ( joueur === "Ciseaux" && robot === "Feuille" ) ) { resultat.textContent = `gagné : ${ joueur } > ${ robot }`; } else { resultat.textContent = `perdu : ${ joueur } < ${ robot }`; } }); }