- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为文本冒险游戏创建一个战斗系统,该系统会生成一个具有随机生命值池的随机敌人,但生成的每个敌人似乎没有自己的生命值池,相反,“主要”敌人生命值变量不断递减当受到攻击时。因此输出显示具有负生命值的新敌人,而不是新的生命值池。到目前为止我的代码:
public class Combat{
//enemy variables
private int enemyHealth = (int) (Math.random()*75);
private int maxEnemyDamage = 25;
private String enemyName;
//player variables
private int playerHealth = 100;
private int playerDamage = 50;
//health potion variables
private int numHealthPotions = 3;
private int healAmount = 30;
private int dropChance = 50; //percentage
public String getEnemyName() {
String[] enemy = {"Zombie", "Witch", "Hell Dog", "Skeleton"};
int i = (int) (Math.random() * 4);
this.enemyName = enemy[i];
return this.enemyName;
}
public int getEnemyHealth(){
return enemyHealth;
}
public void enemyAppears(){
String enemy = getEnemyName();
System.out.println("A " + enemy + " has appeared with " + enemyHealth + " health.");
}
public void attack() {
int damageTaken =(int) (Math.random() * maxEnemyDamage);
int damageDealt =(int) (Math.random() * playerDamage);
enemyHealth -= damageDealt - getEnemyHealth();
playerHealth -= damageTaken;
System.out.println("You strike for " + damageDealt);
System.out.println("You have been hit for " + damageTaken);
System.out.println("You have " + playerHealth + " hp left.\n The enemy has " + enemyHealth + " hp left.");
if (playerHealth < 0){
System.out.println("You died.");
System.exit(15);
}
调用这些方法的main方法:
Combat combat = new Combat();
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the dungeon");
boolean running = true;
GAME:
while(running){
combat.enemyAppears();
System.out.println("Choose:\n1. To Attack \n2. To Heal \n3. To Run");
String choice = input.next();
if(choice.equals("1")) {
combat.attack();
} else if (choice.equals("2")){
combat.heal();
} else {
combat.run();
break;
}
}
}
我想将敌人作为对象生成(我只是随机生成名称),因为我认为这可以解决这个问题,但我不太清楚我的构造函数需要什么。我可以猜测为什么我的代码不起作用,但我也无法修复它。是否有一个简单的构造函数或 setter 可以解决这个问题?
最佳答案
你只有变量enemyHealth
。如果您希望每个敌人都有自己的生命值变量,则必须使用 int[]
。除了真正的 OOP 方法之外,还将敌人实现为对象。小注意事项:您也可以使用 java.util.Random 类来创建随机数。该类还将提供在给定范围内直接创建随机 int
的方法。
关于java - 一种文字冒险游戏战斗系统的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525207/
我有 - class A { // contains certain set() and get() methods } class B extends A { public A ge
我有我的 java 进程(在我的系统中)试图与远程系统的/tmp 目录中的 shellscript(details1.sh)对话(当然这两个系统是连接的)。但是我得到了这个异常(exception)-
我正在学习 JavaScript,并慢慢地理解为什么某个页面不起作用:) 我正在做这样的事情: Remove All Markers 我们认为发送此信息是处理事情的正确方法。但我想我并没有真正理解“这
这就是我在paintComponent中所拥有的(省略了其他大部分内容,只是与一个名为Item的对象对象有关,该对象带有多边形字段,if语句的显式参数对该问题并不重要) 目前,它显示为纯白色,因为我将
我在使用 localStorage 的 Internet Explorer 9 中遇到了有趣的问题。我在使用 i18next 库的 Web 项目中使用客户端本地化,并决定使用 localStorage
我是一名优秀的程序员,十分优秀!