做随机决策树或“ proc”的最佳方法是什么?

问题描述

这是我在游戏设计和游戏编程中经常看到的一种设计模式。我已经用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 (将#修改为@)