[英]My java game isn't working
所以我仍然是一個初學者,但我設法得到了這個代碼,但它沒有像我想要的那樣工作,我的主要問題是每次我按 1 時它都會重置敵人而不是保持相同的敵人。 如果有人可以幫助我,我將不勝感激。 到目前為止,我只讓寫作 1 做一些事情。
package Game;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Random r = new Random();
System.out.println("Welcome to Dragon Heart");
System.out.println("1. Start");
System.out.println("2. Quit");
int input = 0, enemyhealth = 75, enemyattack = 15, playerhealth = 100, playerattack, random;
boolean enemydead = true, playerdead = false;
input = in.nextInt();
if (input == 1) {
System.out.println("Game started!");
while (0 != 1) {
if (enemydead = true) {
enemyhealth = r.nextInt(50) + 51;
enemyattack = r.nextInt(15) + 6;
System.out.println("An enemy appears, it has " + enemyhealth + " health points and " + enemyattack + " attack points");
} else {
System.out.println("The enemy now has " + enemyhealth + "health points");
}
System.out.println("1. Attack");
System.out.println("2. Defend");
System.out.println("3. Run away");
System.out.println("4. Do nothing");
input = in.nextInt();
if (input == 1) {
playerattack = r.nextInt(5) + 21;
random = r.nextInt(2) + 1;
enemyhealth = enemyhealth - playerattack;
if (random == 1) {
playerhealth = playerhealth - enemyattack;
}
if (enemyhealth <= 0) {
enemydead = true;
System.out.println("The enemy has been killed");
} else {
enemydead = false;
}
}
}
} else if (input == 2) {
System.out.println("Game quit.");
}
}
}
你的防守邏輯是可疑的,但你的問題在這里:
if(enemydead = true)
您每次都將enemydead
重新分配為true
。
你真的想檢查敵人是否死了,這是通過這個完成的:
if(enemydead)
此外,您可以將while (0 != 1)
清理為while(true)
。 但是,您將需要在該循環中的某處包含一個break
語句,以便它不像現在那樣是無限循環。
最后,使用小寫的包名而不是大寫的包名是個好主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.