我的java游戏不是';行不通
所以我还是一个初学者,但我成功地得到了这个代码,但它并没有像我想要的那样工作,我的主要问题是,每次我按1时,它都会重置敌人,而不是保持原来的敌人。如果有人能帮助我,我将不胜感激。到目前为止,我只做了一些写作我的java游戏不是';行不通,java,Java,所以我还是一个初学者,但我成功地得到了这个代码,但它并没有像我想要的那样工作,我的主要问题是,每次我按1时,它都会重置敌人,而不是保持原来的敌人。如果有人能帮助我,我将不胜感激。到目前为止,我只做了一些写作 package Game; import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Scann
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.");
}
}
}
打包游戏;
导入java.util.Random;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
随机r=新随机();
System.out.println(“欢迎来到龙心”);
System.out.println(“1.Start”);
System.out.println(“2.Quit”);
int输入=0,enemyhealth=75,enemyattack=15,playerhealth=100,PlayerTack,随机;
布尔值enemydead=true,playerdead=false;
input=in.nextInt();
如果(输入=1){
System.out.println(“游戏开始了!”);
而(0!=1){
如果(enemydead=true){
enemyhealth=r.nextInt(50)+51;
enemyattack=r.nextInt(15)+6;
System.out.println(“一个敌人出现,它有“+敌人健康+”生命点和“+敌人攻击+”攻击点”);
}否则{
System.out.println(“敌人现在有“+敌人健康+”生命点数”);
}
System.out.println(“1.Attack”);
System.out.println(“2.defect”);
System.out.println(“3.Run-away”);
System.out.println(“4.什么都不做”);
input=in.nextInt();
如果(输入=1){
playerattack=r.nextInt(5)+21;
随机=r.nextInt(2)+1;
enemyhealth=enemyhealth-playerattack;
如果(随机==1){
玩家健康=玩家健康-敌人攻击;
}
如果(enemyhealth你的防守逻辑是可疑的,但你的问题是:
if(enemydead = true)
您每次都将enemydead
重新指定为true
你真的想检查敌人是否死亡,这是通过以下方法实现的:
if(enemydead)
此外,您可以将while(0!=1)
清理为while(true)
。但是,您需要在该循环中的某个位置包含break
语句,以便它不像现在这样是一个无限循环
最后,最好使用大写的软件包名称。请更改标题以反映实际问题。我们知道您的游戏不起作用。否则您就不会发布。很抱歉,我不确定如何解释问题。如果您能给我一个建议,我会更改名称。设置一个标题以反映实际问题ect通常是您遇到的问题。在帖子中写下您遇到的问题以及问题是什么。如果是例外,还包括stacktrace
。以及您可以添加的任何更多信息,只需添加。我们是来帮助您的,但您需要先指导我们。@Tiny0!=1
看起来非常正确>对我来说。啊,是的,就是这样……我知道那条线有问题。为了澄清答案,在进行比较时,使用==。=是赋值运算符,这意味着每次调用if语句时,enemydead都被设置为true,所以你的敌人总是死的。使用==运算符进行比较,或者,正如他提到的,因为enemydead是一个布尔值,您可以简单地使用if(enemydead)。只是为了澄清,if(enemydead==true)
仍然是一个正确的条件,因为=
vs=
通常是我们在开始时都会犯的错误:)@vikingsteve:虽然您在技术上是正确的,但我在IDE中设置了几个警告,并且经过5年的调整,禁止我编写布尔比较,然后将其与true
或false
进行比较。您当然是正确的,而且大多数IDE都应该允许您简化条件,如前所述这一点——对java初学者来说,基本了解正在发生的事情很重要:)