Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在努力使用Java方法_Java_Methods - Fatal编程技术网

我正在努力使用Java方法

我正在努力使用Java方法,java,methods,Java,Methods,我试图写一些战斗方法,但我有一些困难 代码: int attackPower; int defencePower; int healthPoints; int startingHealthPoints; int remainingHealthPoints; int damageDone = 0; //Constructor public Combat(int initialAttackPower, int initialDefen

我试图写一些战斗方法,但我有一些困难

代码:

    int attackPower;
    int defencePower;
    int healthPoints;
    int startingHealthPoints;
    int remainingHealthPoints;
    int damageDone = 0;

    //Constructor
    public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
        attackPower = initialAttackPower;
        defencePower = initialDefencePower;
        healthPoints = initialHealthPoints;
    }

    //Methods 
    public void setAttackPower(int newAttackPower) {
        attackPower = newAttackPower;
    }

    public void setDefencePower(int newDefencePower) {
        defencePower = newDefencePower;
    }

    public void setHealthPoints(int newHealthPoints) {
        healthPoints = newHealthPoints;
    }

    int getAttackPower() {
        return attackPower;
    }

    int getDefencePower() {
        return defencePower;
    }

    int getHealthPoints() {
        return healthPoints;
    }

    int getDamageDone() {
        damageDone = 5;
        return damageDone;
    }

    int getStartingHealthPoints(int currentHP) {
        if (damageDone == 0) {
            return startingHealthPoints = healthPoints;
        }
        else {
            return startingHealthPoints = currentHP + damageDone;
        }
    }

    int getRemainingHealthPoints() {
            return remainingHealthPoints = startingHealthPoints - damageDone;
        }
Combat combat1 = new Combat(15,20,100);
       System.out.println("Total HP: " + combat1.getHealthPoints());
       System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 1: " + combat1.getDamageDone());
       System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 2: " + combat1.getDamageDone());
       System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
MAIN:

    int attackPower;
    int defencePower;
    int healthPoints;
    int startingHealthPoints;
    int remainingHealthPoints;
    int damageDone = 0;

    //Constructor
    public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
        attackPower = initialAttackPower;
        defencePower = initialDefencePower;
        healthPoints = initialHealthPoints;
    }

    //Methods 
    public void setAttackPower(int newAttackPower) {
        attackPower = newAttackPower;
    }

    public void setDefencePower(int newDefencePower) {
        defencePower = newDefencePower;
    }

    public void setHealthPoints(int newHealthPoints) {
        healthPoints = newHealthPoints;
    }

    int getAttackPower() {
        return attackPower;
    }

    int getDefencePower() {
        return defencePower;
    }

    int getHealthPoints() {
        return healthPoints;
    }

    int getDamageDone() {
        damageDone = 5;
        return damageDone;
    }

    int getStartingHealthPoints(int currentHP) {
        if (damageDone == 0) {
            return startingHealthPoints = healthPoints;
        }
        else {
            return startingHealthPoints = currentHP + damageDone;
        }
    }

    int getRemainingHealthPoints() {
            return remainingHealthPoints = startingHealthPoints - damageDone;
        }
Combat combat1 = new Combat(15,20,100);
       System.out.println("Total HP: " + combat1.getHealthPoints());
       System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 1: " + combat1.getDamageDone());
       System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 2: " + combat1.getDamageDone());
       System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
主输出:

    int attackPower;
    int defencePower;
    int healthPoints;
    int startingHealthPoints;
    int remainingHealthPoints;
    int damageDone = 0;

    //Constructor
    public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
        attackPower = initialAttackPower;
        defencePower = initialDefencePower;
        healthPoints = initialHealthPoints;
    }

    //Methods 
    public void setAttackPower(int newAttackPower) {
        attackPower = newAttackPower;
    }

    public void setDefencePower(int newDefencePower) {
        defencePower = newDefencePower;
    }

    public void setHealthPoints(int newHealthPoints) {
        healthPoints = newHealthPoints;
    }

    int getAttackPower() {
        return attackPower;
    }

    int getDefencePower() {
        return defencePower;
    }

    int getHealthPoints() {
        return healthPoints;
    }

    int getDamageDone() {
        damageDone = 5;
        return damageDone;
    }

    int getStartingHealthPoints(int currentHP) {
        if (damageDone == 0) {
            return startingHealthPoints = healthPoints;
        }
        else {
            return startingHealthPoints = currentHP + damageDone;
        }
    }

    int getRemainingHealthPoints() {
            return remainingHealthPoints = startingHealthPoints - damageDone;
        }
Combat combat1 = new Combat(15,20,100);
       System.out.println("Total HP: " + combat1.getHealthPoints());
       System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 1: " + combat1.getDamageDone());
       System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Attack 2: " + combat1.getDamageDone());
       System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
       System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
       System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
理想情况下,每次攻击后,起始健康和剩余健康应相应改变。例如,攻击2后的生命值应该是90,攻击前的生命值应该是95。那么攻击后3的生命值应该是85,攻击前应该是90。诸如此类。我可能犯了一个简单的错误,但我真的需要一些帮助。

你的“以前”应该是: getHealthPoints()

然后是某种receiveAttack()方法,在该方法中,传递表示攻击强度的健康点

    public void receiveAttack(int damage) {
       healthPoints -= damage;
    }
现在,再次调用getHealthPoints(),您将得到您的总数


如果您需要存储“最近的伤害”,当然,请为此添加另一个字段,并在对象受到攻击时将其存储。

我正在使用healthPoints作为maxHealthPoints。好的,然后使用getter/setter添加一个新字段。