3.3 KiB
Guessing Game
Ce projet (vierge) est un jeu de devinette où l'utilisateur doit deviner un nombre aléatoire entre deux nombres donnés.
Aucune dépendance n'est nécessaire pour ce projet, seuls des modules natifs de NodeJS sont utilisés.
Commandes
Pour pouvoir lancer le jeu, il suffit d'exécuter la commande suivante:
npm start
# ou
npm run start
# ou
node index.js
Structure du projet
.
├── game.js
├── index.js
├── package.json
├── questions.js
└── README.md
Fichier game.js
Ce fichier exporte une classe GuessingGame qui contient la logique du jeu.
Cette classe est constituée de plusieurs méthodes :
constructor(min, max): le constructeur de la classe qui initialise les propriétésminetmaxde l'instance.generateRandomNumber(): une méthode qui génère un nombre aléatoire entreminetmax(inclus).guess(number): une méthode qui prend un nombre en paramètre et retourne un booléen en fonction de la valeur de ce nombre par rapport au nombre aléatoire.
La logique du jeu est à développer dans ce fichier.
Fichier index.js
Ce fichier est le point d'entrée du jeu. Il importe la classe GuessingGame et utilise les méthodes de cette classe pour jouer, au sein d'une fonction asynchrone app.
Cette fonction est appelée immédiatement après sa déclaration, lors de l'exécution de l'application.
La logique de gestion de la partie est à développer dans ce fichier.
Fichier questions.js
Ce fichier exporte un objet contenant une fonction askNumber(min, max) qui prend deux nombres en paramètres et retourne une question à poser à l'utilisateur.
La fonction est déjà implémentée et retourne une valeur de type Promise<Number>.
La logique est déjà mise en place, inutile de modifier ce fichier.
Objectifs liés au développement
Fichier index.js
- Importer la classe
GuessingGamedepuis le fichiergame.js. - Créer une fonction asynchrone
appqui contient la logique de jeu. - Instancier un objet
GuessingGameavec des valeurs deminetmaxau choix. - Demander à l'utilisateur de deviner le nombre aléatoire jusqu'à ce qu'il trouve la bonne réponse.
Fichier game.js
- Implémenter la logique du jeu dans la classe
GuessingGame. - Générer un nombre aléatoire entre
minetmaxdans la méthodegenerateRandomNumber. - Appeler la méthode
generateRandomNumberdans le constructeur de la classe. - Comparer le nombre donné par l'utilisateur avec le nombre aléatoire dans la méthode
guess. - Retourner
truesi le nombre est correct,falsesinon. - Afficher un message en fonction du résultat de la comparaison ("Trop grand", "Trop petit", "Bravo !").
Objectifs une fois le développement terminé
- Tester le jeu pour vérifier son bon fonctionnement.
- Se créer un compte sur NPM si ce n'est pas déjà fait.
- Se créer un compte sur GitHub si ce n'est pas déjà fait.
- Créer un dépôt sur GitHub pour le projet.
- Pousser le code source sur le dépôt GitHub.
- Créer un package NPM pour le projet.
- Publier le package sur NPM.
- Créer un nouveau projet avec la commande
npm init -yet installer le package publié. - Tester le package installé pour vérifier son bon fonctionnement.