Ok so I am trying to create a console version of pokemon in java. I have made some really good progress, but find myself stuck on creating and storing multiple pokemon objects inside the player party and in-game computer storage. Like in what way could I create these pokemon objects to allow another pokemon object to be created when the player catches another pokemon and to allow the player to move the pokemon objects around in their party, computer, etc. I know that this may be complex and that there is no "right" way of doing this, I just really need pointed in the right direction. So far the only possibility that I have come up with is to create an array of pokemon objects with a length of owned pokemon, but I see many flaws in this idea. I'm not sure how I would initialize each of the objects and am afriad that each time the number of owned pokemon increases, an entire new array would be created. I also have no idea how I would allow the player to move around the pokemon from the party and computer with the array concept. Any type of advice is appreciated!
Need pointed in the right direction
class PokemonInfo {
...
int pokedexNum;
int level;
... etc
}
As megadan said, you usually want an ArrayList for that. Also, make sure you spend some time familiarizing yourself with the Collections Framework, you'll find it extremely helpful.
Sorry but Java doesn't supports pointers
(also, read the links Avalander gave you)
"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"
My journals: dustArtemis ECS framework and Making a Terrain Generator
Big thanks for the arraylist and collections!! I'll be reading up on them and seeing what I can do. Thanks everyone!
// this is not a complete demo, but should give you a good idea how it works
public class Poke {
String name;
int number;
int experence;
int health;
Skills[] skills;
public void Poke(String nam, Skills[] sk, int he, int exp, int num){
name = nam;
skills = sk;
health = he;
experence = exp;
number = num;
}
public class Skills{
String name;
String type;
String effect;
int eff_ammount;
public void Skills(String n, String t, String e, int ea){
name = n;
type = t;
effect = e;
eff_ammount = ea;
}
public String getName(){
return name;
}
public String getType(){
return type;
}
public String getEffect(){
return effect;
}
public int getEff_ammount(){
return eff_ammount;
}
}
public class Player{
Poke[] pokemons;
int money;
int health;
Inv inventory;
public void Player(){
pokemons = new Poke[6];
money = 10;
health = 100;
inventory = new Inv();
}
public void setMoney(int m){
money += m;
}
public int getMoney(){
return money;
}
public void setHealth(int h){
health += h;
}
public int getHealth(){
return health;
}
}
...
Edit:
...
To create a new pokedude
Poke some_poke_name = new Poke(some_poke_name,some_Skill_array , 25, 1, 455);
I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.
~ Ralph Waldo Emerson
Java doesnt support developing Pokemon games.
The reason being that the strange missingno / weedle trainer memory corruption "functionality" will not be possible
Try using a more suitable language like assembly ;)
That aside, to build on what other have said. An example would be using two ArrayLists (computerPokes, partyPokes) and using the ArrayList's methods (i.e partyPokes.add(poke) and computerPokes.remove(poke)) to move Pokema'ns between the lists.
Note, you can also use the index to remove pokes from the ArrayList (i.e computerPokes.remove(7)) if that is more fitting to your design
The ArrayList Javadocs might be useful: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.