C# 中的依赖关系驱动的随机生成器

  • 本文关键字:随机 依赖 关系 c#
  • 更新时间 :
  • 英文 :


我是编码新手。几年前我有一些使用其他语言的经验,但我基本上是从 C# 开始的。我正在尝试制作一系列逻辑驱动的随机生成器,这将有助于我的写作。关于它是逻辑驱动的部分是裤子里的踢。我有一个HTML/Javascript版本在工作,但我想用C#做,我卡住了。

从本质上讲,生成器将随机生成我正在制作的任何东西的第一个特征。例如,也许我正在运行我的随机生物生成器,"生物类型"是"鸟类"(类鸟)。基于该结果,其他特征和特征将随机生成。例如,它不会说鸟类的皮肤类型是"膜"。如果这个生物有尖尖的牙齿,它就不会以"素食"的饮食出现。

我能够制作一个非常基本的随机生成器,但是,我不确定这是最好的方法。我应该把它作为一个列表吗?一个数组?别的?我在网上搜索的所有内容都在解释如何构建随机数生成器,这不是我所需要的,或者它是一个没有内置依赖逻辑的简单列表。除了知道它应该做什么之外,我对 C# 的了解还不够多。我什至不确定我是否使用正确的术语搜索谷歌。

提前谢谢。

好吧,让我们一步一步来。

基于该结果,其他特征和特征将随机生成。

好的,所以你需要一个函数:ISet<T> Choices(T instance);负责提供一组(即没有重复元素的列表和针对检查优化的内部实现,如bool Contains(T instance))下一个可能的选项。所提供的选项必须考虑到给定T instance的本质,并且仅提供有效的选项,以使捕食者不会是素食主义者。

然后你需要T AnyOf(IEnumerable<T> options)函数,它只拾取给定IEnumerable<T>中包含的任何元素。显然,它将模拟非确定性。

最终,您必须匹配它们,以便它们形成一个链T Generate(),该链可以自给自足地创建一个新的有效实例。

请注意,通常您将处理不同的T。没有隐含的假设认为所有这些都是相互关联的。由您来对实例进行足够丰富的建模,以便能够应用我上面绘制的草图。

祝你好运。

最新更新