Actividad 3: Clases
Estamos en el mundo Pokemon.
En este mundo hay varios Gimnasios.
Propiedades del Gimnasio (no se pueden acceder desde ninguna otra clase):
- nombre (nombre del gimnasio)
- lider (nombre del líder del gimnasio)
- pokemons (los pokemons que hay en el gimnasio)
Métodos del Gimnasio:
- cantidadGimnasios(): dice la cantidad de gimnasios creados
- getLider(): Dice el líder del gimnasio
- getNombre(): Dice el nombre del gimnasio
- Constructor(nombre,líder): la manera de crear un gimnasio
- addPokemon (pokemon):Añade un pokemon a los pokemons del gimnasio
- cantidadPokemon(): Devuelve el número de pokemons del gimnasio
- ficha(): Muestra la información del gimnasio con el siguiente formato
Los Pokemon serán otra clase:
Propiedades del Pokemon (no se pueden acceder desde ninguna otra clase)
- nombre (nombre del pokemon)
- nivel (nivel del pokemon. Tiene que ser un valor entre 1 y 100)
- tipo (solo pueden ser Indeterminado, Fuego,Agua,Electrico,Bicho,Acero) enumerado Tipos
Métodos del pokemon:
- Constructor(nombre,nivel,tipo (Tipos)): crea un pokemon con todos los datos
- Constructor(nombre), el nivel será 1 y el tipo Indeterminado
- Ficha(): Muestra la información del pokemon. Este método se utilizará para sacar la ficha del gimnasio.
import java.util.ArrayList;
enum Tipos{
Indeterminado, Fuego, Agua, Electrico, Bico, Acero
}
class Pokemon{
private String nombre;
private int nivel;
private Tipos tipo;
Pokemon(String nombre, int nivel, Tipos tipo){
this.nombre = nombre;
if (nivel > 100) this.nivel = 100;
else if (nivel < 1) this.nivel = 1;
else this.nivel = nivel;
this.tipo = tipo;
}
Pokemon (String nombre){
this(nombre,0,Tipos.Indeterminado);
}
void ficha(){
System.out.println("*".repeat(20));
System.out.println("Nombre: "+this.nombre);
System.out.println("Nivel: "+this.nivel);
System.out.println("Tipo: "+this.tipo);
System.out.println("*".repeat(20));
}
}
class Gimnasio{
static private int numGimnasios;
static int cantidadGimnasios(){
return numGimnasios;
}
private String nombre;
private String lider;
ArrayList<Pokemon> pokemons;
public String getNombre() {
return nombre;
}
public String getLider() {
return lider;
}
Gimnasio(String nombre, String lider){
this.nombre = nombre;
this.lider = lider;
this.pokemons = new ArrayList<>();
numGimnasios++;
}
void addPokemon(Pokemon p){
this.pokemons.add(p);
}
int cantidadPokemon(){
return this.pokemons.size();
}
void ficha(){
System.out.println("-".repeat(20));
System.out.println("Nombre: "+this.nombre);
System.out.println("Lider: "+this.lider);
System.out.println("Pokemons en gimnasio: " + this.cantidadPokemon());
for (Pokemon p : this.pokemons){
p.ficha();
}
System.out.println("-".repeat(20));
}
}
public class Act3Pokemon {
public static void main(String[] args) {
Pokemon pika = new Pokemon("Pikachu");
pika.ficha();
Pokemon charm = new Pokemon("Charmander", 100, Tipos.valueOf("Fuego"));
charm.ficha();
Gimnasio g1 = new Gimnasio("Gimnasio Pueblo Pirotin", "Katy");
g1.addPokemon(pika);
g1.addPokemon(charm);
System.out.println("-> Cantidad gimnasios:" + Gimnasio.cantidadGimnasios());
System.out.println("-> Cantidad pokemons en " + g1.getNombre() + ": " + g1.cantidadPokemon());
g1.ficha();
Gimnasio g2 = new Gimnasio("Gimnasio de Altamia", "Brais");
Pokemon riachu = new Pokemon("Riachu", 200, Tipos.valueOf("Electrico"));
Pokemon squirtle = new Pokemon("Squirtle", 100, Tipos.valueOf("Agua"));
Pokemon gengar = new Pokemon("Gengar", 100, Tipos.valueOf("Agua"));
Pokemon bobo = new Pokemon("Bobo");
g2.addPokemon(riachu);
g2.addPokemon(squirtle);
g2.addPokemon(gengar);
g2.addPokemon(bobo);
System.out.println("-> Cantidad gimnasios:" + Gimnasio.cantidadGimnasios());
System.out.println("-> Cantidad pokemons en " + g2.getNombre() + ": " + g2.cantidadPokemon());
g2.ficha();
}
}
