Este es el repositorio donde realizamos el proyecto final: https://github.com/Serionen/PokemonEquipo13.git
Grupo 13
Diagrama de CRC - Documento word
Uno de los mayores retos durante el desarrollo del proyecto fue la implementación de las funcionalidades teniendo en cuenta los principios de diseño SOLID y GRASP, tales como Expert, SRP (Single Responsibility Principle), entre otros. Este enfoque nos llevó a replantear y rediseñar varias veces diferentes aspectos del sistema, lo cual aumentó la complejidad del desarrollo.
En particular, tuvimos que reconsiderar cómo adjudicar los ataques a los distintos elementos del juego, cómo manejar la efectividad de los tipos de Pokémon, y cuál era el enfoque más adecuado para implementar ciertas funcionalidades sin violar los principios de responsabilidad única o de asignación de responsabilidades adecuada. Estos desafíos nos llevaron a hacer revisiones profundas del diseño inicial y ajustar la arquitectura del proyecto para cumplir con los principios de diseño orientado a objetos, lo cual, si bien fue una tarea dificil, nos permitió adquirir una mejor comprensión y manejo de estos principios.
Aunque el concepto de interfaces y tipos no era nuevo para nosotros, este proyecto nos exigió reafirmar su importancia y nuestros conocimientos para comprender cómo desempeñan un rol crucial en el diseño del proyecto mas complejo que hemos hecho hasta el momento. A lo largo del desarrollo, las interfaces nos brindaron la flexibilidad necesaria para conectar distintas partes del código de manera coherente y extensible, facilitando la separación de responsabilidades y el cumplimiento de los principios SOLID. Este proceso consolidó nuestro entendimiento sobre cómo aplicar correctamente las interfaces y tipos en escenarios prácticos, lo cual será un recurso esencial en proyectos futuros.
En relación con el uso de herramientas como los diagramas UML y las tarjetas CRC, concluimos que son recursos sumamente valiosos para el desarrollo de código de manera planificada y estructurada. El diagrama de clases UML nos permitió visualizar el proyecto de manera clara, antes de programar, viendo el flujo de nuestro programa, así como las relaciones, colaboraciones y dependencias entre las clases e interfaces. Por su parte, las tarjetas CRC nos ayudaron a asignar correctamente las responsabilidades a cada clase y definir sus interacciones de manera efectiva.
A lo largo del proyecto, utilizamos varios recursos adicionales para ayudarnos a sobreponernos a diversos desafíos y complicaciones, tales como W3schools, Stack Overflow, y videos explicativos en YouTube
Uno de los aspectos más interesantes de este proyecto fue la necesidad de adentrarnos en el mundo de Pokémon. Estonos permitió comprender aspectos clave como los tipos de Pokémon, la efectividad de los ataques, y las dinámicas de las batallas, lo cual es fundamental para asegurar que nuestro programa reflejara las reglas y la lógica del universo Pokémon.