February 11, 2026

Ejercicio de Pokemon

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();
    }

}

Leave a Reply

Your email address will not be published. Required fields are marked *