This commit is contained in:
Gauthier Daniels 2025-03-22 14:32:43 +01:00
commit 7649dcdced
5 changed files with 105 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules/

27
game.js Normal file
View File

@ -0,0 +1,27 @@
module.exports = class GuessingGame {
constructor(min, max) {
// TODO
}
/**
* Génère un nombre aléatoire entre les valeurs min et max.
*
* @returns {number} - Retourne un nombre aléatoire.
*/
generateRandomNumber() {
// TODO
}
/**
* Compare la valeur saisie par l'utilisateur
* au nombre à deviner.
*
* Retourne un booléen correspondant à la réussite de la devinette.
*
* @param {number} userNumber - Nombre saisi par l'utilisateur.
* @returns {boolean} - Retourne true si la devinette est correcte, sinon false.
*/
guess(userNumber) {
// TODO
}
};

11
index.js Normal file
View File

@ -0,0 +1,11 @@
const { askNumber } = require("./questions");
const GuessingGame = require("./game");
const MIN = 0;
const MAX = 5;
async function app() {
// TODO
}
app();

11
package.json Normal file
View File

@ -0,0 +1,11 @@
{
"name": "guessing-game",
"description": "Un simple jeu de devinette où l'utilisateur doit trouver un nombre mystère.",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "GauthierWebDev",
"license": "ISC"
}

55
questions.js Normal file
View File

@ -0,0 +1,55 @@
const readline = require("readline");
function createInterface() {
return readline.createInterface({
input: process.stdin,
output: process.stdout,
});
}
async function askNumber(min, max) {
// On attend que l'utilisateur entre un nombre
const number = await new Promise((resolve) => {
// On crée une interface pour lire la réponse
const interface = createInterface();
// On affiche un message à l'utilisateur
interface.question(
`Entrez un nombre entre ${min} et ${max} : `,
(answer) => {
// On convertit la réponse en nombre entier (base 10)
const number = parseInt(answer, 10);
// Si la saisie n'est pas un nombre
if (isNaN(number)) {
console.log("Erreur : Vous devez entrer un nombre");
// On ferme l'interface
interface.close();
// On relance la saisie
return resolve(askNumber(min, max));
}
// On ferme l'interface
interface.close();
// On retourne le nombre
resolve(number);
}
);
});
// Si le nombre est inférieur au minimum ou supérieur au maximum
if (number < min || number > max) {
console.log(`Erreur : Vous devez entrer un nombre entre ${min} et ${max}`);
// On relance la saisie
return await askNumber(min, max);
}
// On retourne le nombre
return number;
}
module.exports = { askNumber };