Ce projet permet de simuler des combats de dresseurs du jeu Pokémon.
Ce projet contient une bibliothèque de fonctions et interfaces TypeScript permettant de simuler des combats de dresseurs du jeu **Pokémon**.
Les sources sont organisées en modules (pokemon, player, battle, pokedex) et un fichier principal d'exécution (main).
## Organisation
> Un pokémon est un montre virtuel caractérisé entre-autres par un nom, un nombre de points de vie, une célérité, une puissance d'attaque et une résistance aux coups. Chaque joueur du duel (appelé dresseur) possède une liste de monstres (Pokémons) qui s'affrontent au tour par tour dans une arène. Au début de la partie, chaque joueur fait combattre le premier monstre de sa liste. Le pokémon le plus rapide (possédant la plus grande célérité) frappe alors en premier. Si son adversaire survit (nombre de points de vie positif), il peut à son tour attaquer son adversaire. Lorsque l'un des deux pokémons ne possède plus de points de vie, il est déclaré K.O. Son propriétaire (joueur) le remplace par le deuxième pokémon de sa liste et ainsi de suite.
> Le premier joueur ne possédant plus de pokémon en état de combattre est déclaré perdant.
Les sources de ce projet sont organisées en modules (`pokemon`, `player`, `battle`, `pokedex`).
## Découverte de GitLab
Un fichier principal d'exécution d'exemple est fourni (`main`), qui définit quelques pokémons, quelques dresseurs, et qui lance un combat entre deux dresseurs.
*Dépôt de découverte du système de version Git et de l'environnement GitLab de l'université*
## Fonctionnement
Pour importer ce projet en local :
Les règles de jeu implémentées sont les suivantes :
- Un pokémon est un montre virtuel caractérisé entre-autres par un nom, un nombre de points de vie, une célérité, une puissance d'attaque et une résistance aux coups. Chaque joueur du duel (appelé dresseur) possède une liste de monstres (Pokémons) qui s'affrontent au tour par tour dans une arène. Au début de la partie, chaque joueur fait combattre le premier monstre de sa liste. Le pokémon le plus rapide (possédant la plus grande célérité) frappe alors en premier. Si son adversaire survit (nombre de points de vie positif), il peut à son tour attaquer son adversaire. Lorsque l'un des deux pokémons ne possède plus de points de vie, il est déclaré K.O. Son propriétaire (joueur) le remplace par le deuxième pokémon de sa liste et ainsi de suite.
- Le premier joueur ne possédant plus de pokémon en état de combattre est déclaré perdant.
## Quelques liens utiles
Pour utiliser la bibliothèque, il suffit de procéder comme montré dans le module `main`, à savoir :