问题描述
这是我在游戏设计和游戏编程中经常看到的一种设计模式。我已经用Java编写了代码,但这更多是关于算法设计的。
我希望我的程序根据随机机会选择各种路径,并且希望能够为每个路径指定机会。
例如,我希望程序随机选择某人是否从其父亲或母亲那里获得姓氏,或者都不从中获得姓氏,
//Last Name
int lastNameProc = rand.nextInt(100);
if(lastNameProc < 6){ //Orphan or disowned by father
if(lastNameProc < 2) { //Orphan
lName = "Smith";
} else { //disowned
lName = mother.lastName;
}
} else { //Not Orphan or disowned
lName = father.lastName;
}
这也可以用不等式完成,而不是嵌套if语句。这样做的问题在于,从else-if子句中不清楚事件发生的几率。
是否有常见或更好的方法?
表达这个问题的另一种方法: 如果我在RPG中有一把剑,击中该剑会施加4种效果之一,火焰,冷,辐射或坏死伤害,每种伤害的概率分别为0.1、0.2、0.2和0.5。我如何在不使用嵌套if语句或基于不等式的if-else语句的情况下对此进行编程。我相信这在游戏设计方面被称为即时触发程序。
我的问题与"Generate A Weighted Random Number"非常相似,但是我无法翻译答案中的代码,因为我不知道要使用哪种类型。看到一个强类型的示例会很好。
最后,我不确定这些名称是否是此模式的正确名称,我将编辑标题以包含正确的单词。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)