init
This commit is contained in:
commit
7649dcdced
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
node_modules/
|
||||
27
game.js
Normal file
27
game.js
Normal 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
11
index.js
Normal 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
11
package.json
Normal 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
55
questions.js
Normal 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 };
|
||||
Loading…
Reference in New Issue
Block a user