Java 我的代码有问题,可以';我找不到
由于某些原因,下面的代码无法正常工作。这只是代码的结构,但我想做的是一对一的格斗游戏。你可以从3个不同的选项中选择一个角色,然后与电脑战斗,电脑也选择了一个角色。生命值达到0的人会输 因此,这段代码中的问题是,计算机在每种情况下都会获胜。我只是把角色3作为我的角色,让它被压制(1000点生命,20点力量,相比之下是120点生命和8点力量),但我的角色仍然在流失。我猜问题很简单,但我就是看不出来 提前谢谢Java 我的代码有问题,可以';我找不到,java,character,Java,Character,由于某些原因,下面的代码无法正常工作。这只是代码的结构,但我想做的是一对一的格斗游戏。你可以从3个不同的选项中选择一个角色,然后与电脑战斗,电脑也选择了一个角色。生命值达到0的人会输 因此,这段代码中的问题是,计算机在每种情况下都会获胜。我只是把角色3作为我的角色,让它被压制(1000点生命,20点力量,相比之下是120点生命和8点力量),但我的角色仍然在流失。我猜问题很简单,但我就是看不出来 提前谢谢 import java.util.Random; public class Test{
import java.util.Random;
public class Test{
public static void main(String[] args){
Character character1 = new Character("Test1", 100, 10);
Character character2 = new Character("Test2", 120, 8);
Character character3 = new Character("Test3", 1000, 20);
Character player = character3;
Character enemy = character2;
boolean playersTurn = true;
while (player.getHP() > 0 || enemy.getHP() > 0){
if (playersTurn == true){
enemy.damage(player.getStrength());
} else {
player.damage(enemy.getStrength());
}
playersTurn = !playersTurn;
}
if (player.getHP() > 0){
System.out.println("Player won!");
} else {
System.out.println("Enemy won!");
}
}
}
class Character{
protected String name;
protected int HP;
protected int strength;
public Character(String name, int HP, int strength){
this.name = name;
this.HP = HP;
this.strength = strength;
}
public String getName(){
return this.name;
}
public int getHP(){
return this.HP;
}
public int getStrength(){
return this.strength;
}
public void damage(int amount){
int sum = this.HP - amount;
this.HP = sum;
}
}
试着改变
while (player.getHP() > 0 || enemy.getHP() > 0){
到
让游戏继续下去,只要其中至少有一条是正确的:
- 玩家的生命值>0
- 或者敌人的生命值大于0
while (player.getHP() > 0 && enemy.getHP() > 0)
此外,您的代码中缺少随机组件,游戏将始终保持不变:您正在导入
随机
类,但从未使用它将while循环条件替换为
while(player.getHP()>0&&friend.getHP()>0)
我建议避免使用与JRE中的类名相同的类名,尤其是java.lang包中的类名(例如
Character
)
while (player.getHP() > 0 || enemy.getHP() > 0)
while (player.getHP() > 0 && enemy.getHP() > 0)