Criando uma classe Pokémon em Java

pcgamer2315132:

Eu tenho um projeto Java que me obriga a ter duas classes chamados: Pokemon.java e Move.java para que eu possa adicionar novos Pokemon e seus movimentos. Eu já escrevi todos os métodos que foram necessários para o projeto, mas estou tendo problemas armazenar e modificar os movimentos, especificamente o método forgetMove na classe Pokemon.

Aqui está o código para Pokemon.java:

    public class Pokemon
{
    // Private constants
    private static final int MAX_HEALTH = 100;
    private static final int MAX_MOVES = 4;
    private String name;
    private int health;
    private Move move;

    // Write your Pokemon class here
    public Pokemon(String theName, int theHealth)
    {
        name = theName;
        if(theHealth <= MAX_HEALTH)
        {
            health = theHealth;
        }
    }

    public String getName()
    {
        return name;
    }

    public int getHealth()
    {
        return health;
    }

    public boolean hasFainted()
    {
        if(health <= 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public boolean canLearnMoreMoves()
    {
        if(Move.getNumOfMoves() < 4)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public boolean learnMove(Move move)
    {
        if(canLearnMoreMoves())
        {
            this.move = move;
            return true;
        }
        else
        {
            return false;
        }
    }

    public void forgetMove(Move other)
    {
        if(Move.equals(other))
        {
            move -= other;
        }
    }

    public String toString()
    {
        return name + " (Health: " + health + " / " + MAX_HEALTH + ")";
    }
}

e aqui está o código para Move.java:

public class Move
{
    // Copy over your Move class into here
    private static final int MAX_DAMAGE = 25;
    private static String name;
    private static int damage;
    public static int numMoves;

    public Move(String theName, int theDamage)
    {
        name = theName;
        if(theDamage <= MAX_DAMAGE)
        {
            damage = theDamage;
        }
        numMoves++;
    }

    public static String getName()
    {
        return name;
    }

    public static int getDamage()
    {
        return damage;
    }

    public static int getNumOfMoves()
    {
        return numMoves;
    }

    public String toString()
    {
        return name + " (" + damage + " damage)";
    }    
    // Add an equals method so we can compare Moves against each other

    public static boolean equals(Move other)
    {
        if(name.equals(other.getName()))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

Aqui está o código para PokemonTester.java:

public class PokemonTester extends ConsoleProgram
{
    public void run()
    {
        Pokemon p1 = new Pokemon("Charrizard", 100);
        Move m1 = new Move("Flamethrower", 90);
        System.out.println(p1);
        System.out.println(m1);
    }
}
CampbellMG:

Isto parece que poderia ser a lição de casa para que eu não vou dar-lhe uma implementação completa .

Se você está simplesmente preenchendo os métodos necessários para o Pokemon e classe Mover, gostaria de começar por repensar a forma como você está armazenando movimentos.

O getNumOfMovesfornece um indício de que sua classe Pokemon deve armazenar mais do que um movimento, uma maneira comum de fazer isso é com matrizes ou listas .

Se tiver guardado os seus movimentos em uma lista, a função forgetMove pode ser parecido com este:

public void forgetMove(Move other){
  moves.remove(other);
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=362857&siteId=1
Recomendado
Clasificación