用Java计算两个数字之间的损伤

时间:2014-07-27 00:07:31

标签: java random

这不仅仅是找一个随机数,

我正在寻找的答案是如何将表达式添加到随机数以根据表达式计算数字。

例如,一系列数字中的基本随机数, +一个角色的当前lvl, *角色的伤害增加。

如果我在java

创建一个在两个数字之间造成伤害的角色

Damage = 44 to 55 per hit我希望将其写入变量,我该怎么做?

我正在尝试这个,

double BottomDamage = 44 + level * 1.9;
double TopDamage = 55 + level * 1.9;

如果损坏发生在这两个数字之间,那么写这样的东西的正确方法是什么44 through 55 + level * 1.9 ???

2 个答案:

答案 0 :(得分:3)

所以在44到55之间的随机数?

可能是这样的:

/* returns random number between min (inclusive) and max (inclusive) */
public static int randomInt(int min, int max) { 
    return min + (int)(Math.random() * (max - min + 1)); 
}

int damageRange = randomInt(44, 55);
int damage = damageRange + level * 1.9;

答案 1 :(得分:1)

您应该使用方法damage编写一个接口,并且每种类型的字符都有一个实现此接口的类。

public interface CausesDamage ()
{
    public double damage ();
}

public abstact class CharacterType implements CausesDamage ()
{
   private int _level;
   ...
   public abstract double damage ();
   ...
   public int getLevel ()
   {
       return _level;
   }
}

public class Warrior extends CharacteType ()
{
   public static final int MIN_DAMAGE = ..;
   public static final int MAX_DAMAGE = ..;
   ...
   private Random rand = new Random();
   ...
   public double damage ()
   {
       return rand.nextInt(MAX_DAMAGE-MIN_DAMAGE+1)+MIN_DAMAGE + getLevel()*1.9;
   }
}