Need pointed in the right direction

Started by
6 comments, last by kop0113 9 years, 9 months ago

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!

Advertisement
It seems like each pokemon will have a set of unique properties and a set of common properties. I would try to separate these into two different data sets. For unique stats like level, equipped skills, etc, you could have just a simple data class to contain this information. Something like:

class PokemonInfo {
...
int pokedexNum;
int level;
... etc
}
You could then just have two dynamic ArrayLists or LinkedLists of these, one for your party, and one for your computer. As you encounter a random pokemon you create one of these, and then you can add it to the party or computer.
Then you might use the pokedexNum as an index into an array containing useful information that is common to all pokemon of particular pokedex entry. For example, what it looks like, its types and weaknesses, 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 biggrin.png

(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!

Sorry but Java doesn't supports pointers biggrin.png

Sorry for the off-topic biggrin.png


// 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 sad.png

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

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

This topic is closed to new replies.

Advertisement