所以我通過創建口袋妖怪戰鬥模擬器(使用JOption窗格)來練習基本的Java。將隨機數的返回值存儲爲局部變量?
我正在使用以下方法將Pokemon的攻擊值作爲最大值,並且爲了簡單起見將min設置爲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傷害Rattata和Rattata滿足x健康出院」。
是否可以從運行狀況中減去randomDamage值,然後在我的JOption窗口中顯示該值?
謝謝!
最大和最小數字傳遞的是什麼? – Yahya
你必須將randomDamage()的結果保存到變量(第9行) – Hani