Pokémon Battle Game
The Context
This project was developed as part of a team at Code First Girls and focused on building a playable text-based Python game using data from the original 151 Pokémon. The idea was to create something technically functional, but also enjoyable to use, combining basic programming concepts with a more playful interface and clear game logic.
The game was designed around turn-based battles in which players select Pokémon and compete against randomly generated opponents. While the concept was lighthearted, the project required practical work in user input handling, external API integration, conditional logic, scoring, and interface design.
The Build
The game was built in Python and connected to PokéAPI to retrieve live Pokémon data such as names, heights, and weights. That external data became the basis for battle comparisons, giving the game a dynamic structure rather than relying on hardcoded values.
Players could choose two Pokémon and battle across one to three rounds. For each round, a selected attribute, such as ID, height, or weight, determined the outcome of the matchup. I worked on developing a game flow that was easy to follow while still handling user choices, random opponent generation, and score tracking consistently.
The project also paid attention to user experience within a text-based environment. Color-coded outputs, ASCII art banners, and Unicode symbols were added to make the interface more engaging and readable. Error handling was implemented to manage invalid inputs and edge cases so the game could run more smoothly and remain accessible to users unfamiliar with command-line interaction.
Because the work was completed as part of a team, development also involved collaboration across coding, testing, and debugging tasks. Clear comments and documentation were used to support readability and make the code easier to share and maintain.
Key Features
Text-based Python battle game using Pokémon from the original 151
PokéAPI integration for live Pokémon data
Player selection of two Pokémon per game
Randomly generated opponents
Battle logic based on selected stats such as ID, height, and weight
Configurable gameplay across one to three rounds
Score tracking for wins, losses, and draws
Error handling for invalid inputs and edge cases
Enhanced command-line interface using color, ASCII art, and Unicode elements
Collaborative development with shared coding, testing, and debugging responsibilities
The Result
The project produced a functional text-based game that combined programming fundamentals with API-based data retrieval and user-centered design choices. It provided hands-on experience with Python functions, loops, conditionals, external data handling, and input validation within a complete project rather than in isolated exercises.
It also reinforced collaborative development practices, including shared problem-solving, debugging, code readability, and documentation. More broadly, the project showed how a simple game format can be used to apply technical concepts in a way that is both structured and engaging.

