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