Este proyecto es un juego de batalla entre pokémones donde los jugadores pueden seleccionar sus pokémones y enfrentarse en una batalla estratégica. Utiliza un algoritmo específico para determinar el ganador basado en las estadísticas de los pokémones.
- El pokemon con la velocidad más alta hace el primer ataque. Si son iguales, el pokemon con el ataque más alto va primero.
- Para calcular el daño, resta la defensa del ataque (ataque - defensa). La diferencia es el daño. Si el ataque es igual o menor que la defensa, el daño es 1.
- El daño se resta del HP.
- Los pokemon pelearán por turnos. Todos los turnos serán calculados en el mismo request, por lo que el endpoint debe retornar la data del ganador en la misma llamada.
- El ganador es el que reduzca el HP del enemigo a cero.
- Se implementó el sistema de tipos, pero no interactúa en el algoritmo de batalla, solo es visual.
Backend:
- Framework: NestJs
- ORM: Typeorm
- Base de datos: Sqlite
- Gestor de paquetes: Yarn
Frontend:
- Librería: React
- Componentes UI: MaterialUI
- Gestor de paquetes: Yarn
- Clona el repositorio desde GitHub:
git clone https://github.com/DarioAlbor/ChallengePokemon.git - Navega al directorio del proyecto:
cd ChallengePokemon
- Navega al directorio del servidor:
cd server - Instala las dependencias:
yarn - Genera la base de datos de pokémones
pokemon.db(si deseas una nueva, elimina la actual):yarn run seed - Inicia el servidor:
yarn start
- Navega al directorio del cliente:
cd client - Instala las dependencias:
yarn - Navega al directorio
../utils/apiroutes.jsy modificaconst baseurl = 'http://localhost:3000/pokemon'; - Inicia el cliente:
yarn start
¡Disfruta!
Frontend: Vercel Backend: Render
Puedes contactarme mediante mi portafolio.
También puedes contribuir al proyecto sumando nuevas ideas o líneas de código. ¡Toda ayuda es bienvenida!
![]() |
![]() |
|---|---|
| Inicio del juego | Selección de pokémon |
![]() |
![]() |
|---|---|
| Batalla | Victoria |



