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.

Previous
Previous

Colors in Cinema

Next
Next

Disinformation Strategies on TikTok & Spotify