我是编码新手。几年前我有一些使用其他语言的经验,但我基本上是从 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
。没有隐含的假设认为所有这些都是相互关联的。由您来对实例进行足够丰富的建模,以便能够应用我上面绘制的草图。
祝你好运。