doc: Add README.md with instructions
This commit is contained in:
parent
7649dcdced
commit
94cce14d84
85
README.md
Normal file
85
README.md
Normal file
@ -0,0 +1,85 @@
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
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`
|
||||
|
||||
- [x] Importer la classe `GuessingGame` depuis le fichier `game.js`.
|
||||
- [x] 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`)_.
|
||||
Loading…
Reference in New Issue
Block a user