Design, extend, and implement Pokemon, Move, Item, Player classes to make them work together. You are encouraged to add more modules to make your system more interesting and robust.Python Programming

1. System Functionalities 


Design, extend, and implement Pokemon, Move, Item, Player classes to make them work together. You are encouraged to add more modules to make your system more interesting and robust.

In your system design, your team should decide what other functionalities you want to add in your Pokemon game. Examples of some functionalities are listed below for your reference. Note that:

1) Depending on the expected difficulty, novelty, and amount of work for each implementation, different scores are assigned to each example. But actual score you can get depends on the actual quality, difficulty, novelty, and amount of your work. For example, Pokemon Encounter and Capturing is 1pt. The sample code uploaded on Blackboard already implements most parts of this system. So if you do minor work to extend it a little, you can receive only 1 pt. But if you do extensive amount of work to make the encounter and capturing system very fancy, it is possible to earn 2 points or even 3 or more points. The working code should be demonstrated in presentation to claim for credits.

2) It's good to make your system functions as complete as possible. But there's no requirement to make the data complete. For example, you don't have to prepare data for all 800+ pokemons. You don't have to make everything identical to official Pokemon/PokemonGo games.

3)  The total is 15 points depending on which functionalities you chose to implement. For impressive project, up to 3 extra credits may be given and make the total 18 points.


Sample functionalities to add/extend:

1. Pokemon Encounter and Capturing System (1 pt)

In the given sample code, a player can encounter random wild pokemons. When a specific wild pokemon appears, its CP, HP, sex and moves should be randomized. Pokeballs can be used to capture wild pokemons with probability p (0<p<1). The value of p varies based on different kinds of pokeballs. Pokemons can only be captured during wild Pokémon encounters, not during player-to-player battles.

To extend, you can design your own mechanisms of randomization (e.g., rare and strong pokemons appear less frequently).  Another idea is to set different capture rate (success rate) for different pokemons (e.g., rare or strong pokemons are harder to catch). You can also design mechanisms so that pokemons may escape when certain condition are met. 

2. Type system and Battle Tweak (1~2 pt)

Each pokemon has at least two move attributes (e.g., fast move, and special move which is stronger). Each pokemon is associated with one (1) or two (2) type attributes (e.g., fire, water, grass etc.). Each move is associated with only one (1) type attribute.

The pokemon's type and combat power (CP) attributes affect the damage dealt by pokemon’s moves. You can decide by yourself how it is affected, but you should try to make combats balanced and interesting.

The following are examples of battle tweak (but you can choose not to follow them):

1) If a pokemon uses a move that has the same type as the pokemon's type (or one of the two types), the damage is multiplied by 1.5.

2) If a move with fire type is used against a pokemon with grass type, the damage is doubled. If a move with fire type is used against a pokemon with water type, the damage is halved. If a move with fire type is used against a pokemon with grass & water type, the damage keeps the same (doubled and then halved).


3. Player Battle 

Pokemons can fight against each other. When two players meet, they can make their pokemons at hand to participate in the battle. The combat is a turn-based battle (i.e., two players take turns to decide what action to take, such as attacking, using items, or change pokemons. When an action is done, the other player takes the next action... and so on). If attacking, the player can decide which move to use. If using item, the player can decide which item to use, and when appropriate, which pokemon to use item on. If changing pokemon, which pokemon to use needs to be decided by the player.

You can also consider AI and make opponent player make decisions automatically.


4. Candies, Stardust, and Evolution 

Each pokemon can be fed with pokemon candies and stardust. When fed, pokemons can increase CP which in turn powers them up (because attack damage and HP are related to CP). 

Some pokemons can evolve (transform to a different pokemon object) when a certain amount of candies are fed. 

In addition to candies and stardust, you can design your own mechanism to increase pokemon’s CP. For example, one of the possible ideas is to win battles. You can decide how much CP are earned by winning over other pokemon or players.


5. Location and PokeStop 

A PokeStop is an object representing a certain location in real world. When a player visits a pokestop, the player can obtain 1~5 random items. 

Your PokeStop system should interact with Google Map API to obtain interesting locations near the IP address of player, and allow players to interact with these locations.


5. Egg and Incubator System 

Players can find eggs by levelling up, visiting PokeStops, and by other approaches. Players can use incubators to hatch eggs. When players walk, the eggs being incubated will accumulate distances. When the distance reaches to a certain amount, random pokemons can hatch from the eggs.


6. Faction and Gym 

Each player belongs to one of the three factions (like guilds): Valor, Mystic, and Instinct. A gym is an object representing a certain location. The gym can be occupied by 1~6 players of the same faction. Each player can assign one and only one pokemon that he or she carries to the gym, so at maximum a gym is defensed by six pokemons of the same faction.

A player can occupy a gym when the gym is not occupied by anyone else.  Pokemon battles take place when a player visits a gym occupied by player(s) from a different faction. If the player defeats all the pokemons in the gym, the gym becomes occupied by the winning player.


7. Database Management 

A database can be used to organize data related to above-mentioned functionalities.


8. GUI (Graphic user interface) 

Making a GUI of your app will make your interface very impressive.


Instructions Files

Python Programming Experts

Python Programming

60 Answers

Issac Torres
Python Programming

67 Answers

View More Experts

The ready solutions purchased from Library are already used solutions. Please do not submit them directly as it may lead to plagiarism. Once paid, the solution file download link will be sent to your provided email. Please either use them for learning purpose or re-write them in your own language. In case if you haven't get the email, do let us know via chat support.

Get Free Quote!

266 Experts Online