我对Java很陌生并且自己一直在自学。我正在创建一个RPG游戏,其中技能反映了一个“修饰符”,你可以根据你在该领域的整体技能获得或失去修饰符。
例如,如果你的“力量”技能为10,那么你需要对需要力量的任何东西获得+0修饰符。如果它是12,你获得+1修饰符,14是+2,依此类推。
我是否可以通过某种方式创建一个巨大的表格,将所有增量列为if
语句?
答案 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的类。我会把这个学习练习留给你; - )