Reference no: EM13853090
1. Assignment: Storing Pokemon
Gotta Catch Some of Them!!
You showed in class that you are all experts in Pok´emon, but if you're going to be a real expert, you should design your own data structure for storing them all. It should be able to retrieve the info about a Pokemon just from the name. However, as you told me class, and I have since verified with the internet, different Pok´emon can have the same name. But seriously, if I reach into my hash table for a Pok´emon and there are several with the same name, obviously I wanted the best one. We'll say the best one is the one with the most total points (are they called points? I'm going to call them points). Unlike the Map ADT we saw in class, your data structure should store duplicate named Pok´emon as long as they differ in some attribute. If they have they exact same attributes, then there is no need to store a duplicate.
You will need to implement the following interface:
public interface Pokedex {
// add a Pokemon v with name k into the Pokedex public void add(String k, Pokemon v);
// Remove a Pokemon with name k from the Pokedex.
// If there are several with the same name, return the one with the largest total poin
// If there are no Pokemon with the given name, return null. public Pokemon remove(String k);
// Return the number of pokemon with a given name in the Pokedex. public int count(String k);
}
2. Project Specification
You should be able to load a collection of Pok´emon from standard in. The standard input format has one Pok´emon per line. Each line is of the form:
Name TYPE OPTIONAL TYPE Total HP Attack Defense Sp Attack Sp Defense Speed
Here are some examples:
Bulbasaur GRASS POISON 318 45 49 49 65 65 45
Ivysaur GRASS POISON 405 60 62 63 80 80 60
Venusaur GRASS POISON 525 80 82 83 100 100 80
Pikachu ELECTRIC 320 35 55 40 50 50 90
Raichu ELECTRIC 485 60 90 55 90 80 110
Sandshrew GROUND 300 50 75 85 20 30 40
Sandslash GROUND 450 75 100 110 45 55 65
Nidoran
|
POISON
|
275
|
55
|
47
|
52
|
40
|
40
|
41
|
Nidoran
|
POISON
|
273
|
46
|
57
|
40
|
40
|
40
|
50
|
Nidorina
|
POISON
|
365
|
70
|
62
|
67
|
55
|
55
|
56
|
Nidoqueen POISON GROUND 505 90 92 87 75 85 76
We will provide some test code to use your Pokedex. The test code will call the methods in the interface.
We will also test with madeup Pokemon.
As with previous assignments, you task is to implement your own data structure rather than using the built-in Java collections classes. You may use a built List for separate chaining if you use that method.