gpt4 book ai didi

java - 将随机数的返回值存储为局部变量?

转载 作者:行者123 更新时间:2023-12-02 13:21:44 25 4
gpt4 key购买 nike

所以我正在通过创建 Pokemon 战斗模拟器(使用 JOption Panes)来练习基本的 Java。

我使用以下方法将 Pokemon 的攻击值作为最大值,并为简单起见将最小值设置为 0。

public static int randomDamage(int min, int max) {
int range = (max - min) + 1;
int randomDamage = (int)(Math.random() * range) + min;
return randomDamage;

这是我调用该方法的地方。

public static void battle(Pokemon pokemon1, Pokemon pokemon2) {
showMessageDialog(null, pokemon2.name + "'s stats are: \n Health: "
+ pokemon2.health + "\n Attack: " + pokemon2.attack + "\n Speed: " + pokemon2.speed);
showMessageDialog(null, pokemon1.name + " begins the fight against " + pokemon2.name);
do {

if (pokemon1.health > 0 && pokemon2.health > 0) {
showMessageDialog(null, pokemon1.name + " attacks " + pokemon2.name);
pokemon2.health = pokemon2.health - randomDamage(0,pokemon1.attack);
showMessageDialog(null, pokemon1.name + " does " + pokemon1.randomDamage + " damage to " +
pokemon2.name + " and " + pokemon2.name + " has " + pokemon2.health + " left.");
}

if (pokemon1.health > 0 && pokemon2.health > 0) {
showMessageDialog(null, pokemon2.name + " attacks " + pokemon1.name);
pokemon1.health = pokemon1.health - pokemon2.attack;
showMessageDialog(null, pokemon2.name + " does " + pokemon2.attack + " damage to " +
pokemon1.name + " and " + pokemon1.name + " has " + pokemon1.health + " left.");
}


} while (pokemon1.health > 0 && pokemon2.health > 0);
if (pokemon1.health < 1) showMessageDialog(null, pokemon1.name + " has been reduced to 0 health. "
+ pokemon1.name + " has lost the fight.");
else showMessageDialog(null, pokemon2.name + " has been reduced to 0 health. "
+ pokemon2.name + " has lost the fight.");

}

伤害似乎是随机的,正如我预期的那样,但它总是会说“小火龙对拉塔塔造成 0 伤害,拉塔塔还剩下 x 生命值”。

是否可以从运行状况中减去 randomDamage 值,然后在我的 JOption 窗口中显示该值?

谢谢!

最佳答案

如果你想多次使用randomDamage的返回值(即在pokemonX.randomDamage中),你需要先存储它。

示例(假设Pokemon有一个int randomDamage成员):

pokemon1.randomDamage = randomDamage(0,pokemon1.attack);
pokemon2.health = pokemon2.health - pokemon1.randomDamage;
showMessageDialog(null, pokemon1.name + " does " + pokemon1.randomDamage + " damage to " + pokemon2.name + " and " + pokemon2.name + " has " + pokemon2.health + " left.");

关于java - 将随机数的返回值存储为局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com