Javascript - Le jeu du pendu
Le but est de créer un jeu du pendu interactif en utilisant HTML et JavaScript.
Les trous dans le code sont marqués par // ....
Structure de base du HTML
Voici la structure HTML de base pour afficher le jeu. Complète les éléments manquants.
| HTML |
|---|
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Jeu du Pendu</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
input, button {
padding: 8px;
margin: 5px;
}
</style>
</head>
<body>
<h1>Jeu du pendu !</h1>
<h2>Trouve le mot caché</h2>
<h3>Chaque erreur décrémente le nombre d'essais restants</h3>
<div id="contenu">
<h3 id="proposition">
lettre proposée:
<input type="text" size = "2" id="lettre">
<button onclick="joue()">OK</button>
</h3>
</div>
<h2 id="mot"></h2>
<div id="jeu"><h3>Lettre(s) déjà essayées : <span id="essayees"></span></h3></div>
<div id="essais"><h3>Essais restants : <span id="restant"></span></h3> </div>
</body>
<script>
// Code JavaScript ici
</script>
</html>
|
Initialisation des variables
Les variables suivantes servent au jeu.
| JavaScript |
|---|
| // Variables globales
let essayees = ""; // Lettres déjà essayées
let nbEssaisRestants = 6; // Nombre d'essais restants
let mot = "ALGORITHME"; // Mot Ă deviner (on peut le changer)
|
Récupération de la lettre saisie
Dans la fonction joue(), on veut récupérer la lettre saisie par l'utilisateur.
Astuce: : .toUpperCase() ajouté à la fin d'un caractère ou dune chaînes de caractères convertit les lettres en majuscules.
| JavaScript |
|---|
| function joue() {
// Récupération de la lettre saisie
let blettre = document.getElementById("lettre");
const lettre = // ... ; // Convertir en majuscule
}
|
Vérification de la lettre
Ajoute le code pour vérifier si la lettre a déjà été proposée et si elle est dans le mot.
| JavaScript |
|---|
| // Vérifie si la lettre a déjà été proposée
if (!essayees.includes(lettre)) {
essayees = essayees + lettre;
}
// Vérifie si la lettre est dans le mot
if (!mot.includes(lettre)) {
nbEssaisRestants -= 1;
}
|
Affichage du mot avec les lettres trouvées
Complète la boucle pour afficher le mot avec les lettres trouvées.
| JavaScript |
|---|
| let motAffiche = "";
let nbTrouvees = 0;
for (let lettreMot of mot) {
if (essayees.includes(lettreMot)) {
motAffiche += lettreMot;
nbTrouvees += 1;
} else {
// ...
}
motAffiche += " "; // Espace entre les lettres
}
|
Vérification de la fin de partie
Ajoute les conditions pour vérifier si la partie est gagnée ou perdue.
| JavaScript |
|---|
| // Teste si la partie est gagnée
if (nbTrouvees == mot.length) {
document.getElementById("proposition").textContent = // ... ;
}
// Teste si la partie est perdue
if (nbEssaisRestants == 0) {
document.getElementById("proposition").textContent = // ... ;
}
|
Mise Ă jour de l'affichage
Mise à jour l'affichage des lettres essayées, du mot à deviner et des essais restants.
| JavaScript |
|---|
| // Réinitialisation du champ de saisie
blettre.value = "";
// Mise Ă jour de l'affichage
document.getElementById("essayees").textContent = // ... ;
document.getElementById("mot").textContent = // ... ;
document.getElementById("restant").textContent = // ... ;
|
Code complet
Voici le code complet avec les trous Ă remplir :
| JavaScript |
|---|
| let essayees = ""; // vide au début du script
let nbEssaisRestants = 6; // possible de le modifier en fonction de la difficulté cherchée
function joue() {
let mot = "ALGORITHME";
let proposition = document.getElementById("proposition");
let aTrouver = document.getElementById("mot");
let blettre = document.getElementById("lettre");
let lettresEssayees = document.getElementById("essayees");
let restants = document.getElementById("restant");
const lettre = // ... ;
if (!essayees.includes(lettre)) {
essayees = essayees + lettre;
}
if (!mot.includes(lettre)) {
nbEssaisRestants -= 1;
}
let motAffiche = "";
let nbTrouvees = 0;
for (let lettreMot of mot) {
if (essayees.includes(lettreMot)) {
motAffiche += lettreMot;
nbTrouvees += 1;
} else {
// ...
}
motAffiche += " ";
}
if (nbTrouvees == mot.length) {
proposition.textContent = // ... ;
}
if (nbEssaisRestants == 0) {
proposition.textContent = // ... ;
}
blettre.value = "";
lettresEssayees.textContent = // ... ;
aTrouver.textContent = // ... ;
restants.textContent = // ... ;
}
|
Teste le jeu !
- Ouvre le fichier HTML dans un navigateur.
- Saisis des lettres pour deviner le mot.