2017-04-21 39 views
0

所以我通過創建口袋妖怪戰鬥模擬器(使用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窗口中顯示該值?

謝謝!

+0

最大和最小數字傳遞的是什麼? – Yahya

+0

你必須將randomDamage()的結果保存到變量(第9行) – Hani

回答

1

如果您想多次使用它,則需要首先存儲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."); 
+0

這正是我所需要的。夠簡單。謝謝! – Sean

相關問題