Projet
Pokémons Attaquent !
Choisis ton Pokémon et attaque ! Un Pokémon est choisi au hasard et chaque attaque est tirée au sort de sa propre banque d’attaque.
Genèse du projet
Mettre en pratique des connaissances sur les requêtes d’API.
Ce projet est né d’un désir personnel de mettre en pratique des notions de requêtes API apprises lors de formations en ligne. L’univers Pokémon s’est imposé comme un terrain de jeu idéal pour tester ces connaissances dans un cadre ludique et interactif. L’idée était de créer une expérience basée sur le hasard, tout en intégrant des mécaniques de jeu simples et efficaces
Objectif
Créer une application web où deux joueurs s’affrontent à l’aide de Pokémons choisis aléatoirement via une API. Chaque attaque est tirée au sort dans la banque d’attaques du Pokémon sélectionné, et les points de vie sont mis à jour en temps réel.
Fonctionnalités principales :
- Sélection aléatoire de Pokémons via l’API PokeAPI
- Attaques générées dynamiquement avec affichage textuel
- Calcul et mise à jour des points de vie après chaque coup
- Interface interactive avec possibilité de nommer les joueurs
Technologies utilisées
- API PokeAPI intégrée via un wrapper
- JavaScript pour la logique du jeu et la gestion des promesses
- HTML/CSS pour l’interface utilisateur
Défis rencontrés
L’un des principaux défis a été de comprendre et manipuler la documentation de l’API pour en extraire les données pertinentes.
Solutions apportées
- Passage d’un code spaghetti à une structure orientée objet
- Gestion des promesses pour assurer la fluidité des requêtes
- Création d’objets “joueur” pour centraliser les interactions et les états du jeu
Ce que j’ai appris
Ce projet m’a permis de consolider mes compétences en JavaScript, notamment dans la gestion des requêtes API et la structuration du code. J’ai réussi à faire un code propre et clair qui serait possible de faire évoluer au fil du temps.
Historique
La naissance naïve d'un jeu de hasard
À l’époque de la conception de ce jeu, j’étais absorbé par toutes les formations en ligne que je rencontrais. Je venais de faire une formation avec la gestion des promesses en JS et j’ai eu envie de partir seul à l’aventure.
Les formations en ligne, c’est bien, mais nous sommes souvent pris par la main, conduit pas-à-pas dans le code. Je voulais savoir si j’avais bien appris.
Le code
Pure JavaScript
Le code a été écrit en deux temps. D’abord en mode fonctionnel, un spaghetti de fonctions désordonnées ! Une fois le jeu à peu près jouable, j’ai eu un déclic : programmation orientée objet. J’ai alors réorganisé le code, créé des objets comme les joueurs, et structuré le tout proprement. Le reste s’est enchaîné naturellement.
PokeAPI
L’idée du jeu est née autour d’une API gratuite trouvée en ligne : pokeapi.co. En lisant sa documentation, j’ai découvert qu’un outil existait déjà pour gérer les requêtes.
Je me suis lancé dans des tests, malgré mon manque d’expérience. Manipuler les réponses de l’API fut long et ardu — je ne connaissais pas encore Postman ou Bruno !
Ce fut un bel exercice de patience et de gestion de données JSON. J’ai appris de manière autonome à utiliser un wrapper, une méthode que je ne connaissais pas avant de relever ce défi.
Fonctionnalités
- Possibilité de nommer son joueur en cliquant sur le mot Joueur.
- Un bouton “choisir le Pokémon” pour chaque joueur choisi au hasard un Pokémon dans l’API.
- Le bouton “attaque” pige dans la banque des attaques de ce pokémon au hasard grâce à un ID généré aléatoirement.
- Chaque coup s’affiche textuellement au bas de la page.
- À chaque attaque, les points sont recalculés et mis à jour.
- Le premier joueur à perdre tous ses points perd la partie.
