基于另一个变量的增量创建变量

时间:2014-02-14 01:14:21

标签: java arrays variables

我对Java很陌生并且自己一直在自学。我正在创建一个RPG游戏,其中技能反映了一个“修饰符”,你可以根据你在该领域的整体技能获得或失去修饰符。

例如,如果你的“力量”技能为10,那么你需要对需要力量的任何东西获得+0修饰符。如果它是12,你获得+1修饰符,14是+2,依此类推。

我是否可以通过某种方式创建一个巨大的表格,将所有增量列为if语句?

3 个答案:

答案 0 :(得分:3)

听起来你只想要一些公式来计算修饰符。从你的问题猜测,公式将是:

int modifier = Math.floor((skillLevel - 10) / 2);

如果你想要不同类型技能的不同公式,那么你可能想要一个存储有不同常数的Skill类,用于计算公式。例如,如果如上所述计算强度,但在开始获得修改器之前智力需要为15,那么您可以这样做:

public class Skill {
    int baseLevel;

    public Skill(int level) {
        this.baseLevel = level;
    }

    public int getModifier(int skillLevel) {
        return Math.floor((skillLevel - baseLevel) / 2);
    }
}

使用baseLevel为10创建Skill的强度实例,并使用baseLevel为15创建Skill的智能实例。如果计算修饰符的公式更复杂,则可以更改此类因此。

答案 1 :(得分:0)

对于您给出的示例,您可以这样做:

modifier = (skill - 10) / 2;

其中说每两点> 10给出+1修饰符。这是一个简单的解决方案,因为它没有考虑技能< 10但你明白了。

答案 2 :(得分:0)

看看Java Collections Framework 并选择一个类来存储表格,指出哪些修饰符适用于给定的分数。您希望能够最初加载数据,然后根据需要查找答案以获得分数。因此,您可能希望查看一些实现java.util.map的类。我会把这个学习练习留给你; - )