int i = 1;
int answer;
int d;
int e;
boolean alive = true;
System.out.println("\n");
System.out.println(enemies[i].getName() + " has appeared!");
System.out.print("\n");
while (alive == true) {
System.out.println("Hitpoints[HP]: " + enemies[i].getHP());
System.out.println("Attack[ATK] : " + enemies[i].getATK());
System.out.println("Mana[MANA] : " + enemies[i].getMANA());
System.out.println("\n");
System.out.println("[1 - Attack]");
System.out.println("[2 - Flee]");
answer = In.getInt();
System.out.println("\n");
if (answer == 1) {
if (user.getP_HP() > 0) {
d = enemies[i].getHP() - user.getP_ATK();
enemies[i].setHP(d);
System.out.println(user.getP_Name() + " strikes the " + enemies[i].getName() + " for " + user.getP_ATK() + " damage.");
System.out.println(enemies[i].getName() + " has " + enemies[i].getHP() + " HP remaining.");
System.out.println("\n");
} else if (user.getP_HP() <= 0) {
System.out.println(user.getP_Name() + " has been slain by the " + enemies[i].getName() + "!");
alive = false;
}
if (enemies[i].getHP() > 0) {
e = user.getP_HP() - enemies[i].getATK();
user.setP_HP(e);
System.out.println("The " + enemies[i].getName() + " attacked you for " + enemies[i].getATK() + " damage.");
System.out.println(user.getP_Name() + " has " + user.getP_HP() + " HP remaining.");
System.out.println("\n");
} else if (enemies[1].getHP() <= 0) {
System.out.println(user.getP_Name() + " has slain the " + enemies[i].getName() + "!");
alive = false;
}
} else if (answer == 2) {
System.out.println("You try to run, but fall into a pit of spikes and die!");
alive = false;
}
}
你好,我現在解決這個問題約2小時有問題。我想要做的是讓敵人在HP達到0或以下時立即死亡,對於玩家也是如此。關於如何安排「if」語句的Java困惑
只有當玩家先殺死地精時纔有效,反之亦然不是。
每當敵人首先殺死玩家時,它不會輸出已被殺死的玩家。相反,它可以讓您選擇是否要再次攻擊或逃離。選擇攻擊選項後,它只會表明你已經被殺死。儘管如此,在那之前,地精在程序停止之前再次攻擊你。
下面是示例輸出如果敵人先殺死你:
stackoverflow strikes the Goblin for 1 damage.
Goblin has 12 HP remaining.
The Goblin attacked you for 3 damage.
stackoverflow has 1 HP remaining.
Hitpoints[HP]: 12
Attack[ATK] : 3
Mana[MANA] : 1
[1 - Attack]
[2 - Flee]
1
stackoverflow strikes the Goblin for 1 damage.
Goblin has 11 HP remaining.
The Goblin attacked you for 3 damage.
stackoverflow has -2 HP remaining.
Hitpoints[HP]: 11
Attack[ATK] : 3
Mana[MANA] : 1
[1 - Attack]
[2 - Flee]
1
stackoverflow has been slain by the Goblin!
The Goblin attacked you for 3 damage.
stackoverflow has -5 HP remaining.
'enemies [1] .getHP()<= 0' - 你的意思是做'敵人[i]。 getHP()<= 0'而不是? – EJoshuaS
'alive == true'文體點:不需要明確地比較'true'和'false'。 – EJoshuaS
@EJoshuaS對,謝謝你的銳利眼 –