Go to file
2025-03-22 14:47:18 +01:00
.gitignore init 2025-03-22 14:32:43 +01:00
game.js init 2025-03-22 14:32:43 +01:00
index.js init 2025-03-22 14:32:43 +01:00
package.json init 2025-03-22 14:32:43 +01:00
questions.js init 2025-03-22 14:32:43 +01:00
README.md doc: Add README.md with instructions 2025-03-22 14:47:18 +01:00

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és min et max de l'instance.
  • generateRandomNumber(): une méthode qui génère un nombre aléatoire entre min et max (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 GuessingGame depuis le fichier game.js.
  • Créer une fonction asynchrone app qui contient la logique de jeu.
  • Instancier un objet GuessingGame avec des valeurs de min et max au 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 min et max dans la méthode generateRandomNumber.
  • Appeler la méthode generateRandomNumber dans le constructeur de la classe.
  • Comparer le nombre donné par l'utilisateur avec le nombre aléatoire dans la méthode guess.
  • Retourner true si le nombre est correct, false sinon.
  • 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.
  • Tester l'exécution du jeu sans aucune installation (avec npx nom-du-package).