我是编码新手。几年前,我在使用其他语言方面已有一些经验,但是从本质上来说,我是从C#开始的。我正在尝试制作一系列逻辑驱动的随机生成器,这些将对我的写作有所帮助。逻辑驱动的部分在于裤子的脚踢。我有一个HTML / Javascript版本,但是我想用C#来做,但我陷入了困境。
本质上,生成器将随机生成我正在制作的任何东西的第一个特征。例如,也许我正在运行我的随机生物生成器,并且“生物类型”是“禽类”(鸟状)。根据该结果,其他特征和特性将随机生成。例如,对于禽类动物,它不会说皮肤类型是“膜”。如果该生物具有尖齿,就不会出现“素食”饮食。
我能够制作一个非常基本的随机生成器,但是,我不确定这是否是最好的随机生成器。我应该把它列为清单吗?数组?还有吗我在网上搜索的所有内容都在说明如何构建随机数生成器,这不是我所需要的,或者它是一个简单的列表,没有内置的依赖关系逻辑。除了了解应该做什么外,我不知道没有足够的C#来获取它。我什至不确定我在用正确的术语搜索google。
谢谢。
答案 0 :(得分:1)
好的,让我们逐步进行。
基于该结果,其他特征和特征将随机生成。
好,因此您需要一个函数:ISet<T> Choices(T instance);
,负责提供下一个可能选项的集合(即,列表中没有重复的元素,并且内部实现针对bool Contains(T instance)
之类的检查进行了优化)。 必须提供的选项必须考虑给定T instance
的本质,并且仅提供有效的选项,以使捕食者不会成为素食主义者。
然后,您需要T AnyOf(IEnumerable<T> options)
函数,该函数randonly拾取给定IEnumerable<T>
中包含的任何元素。显然,它将模拟非确定性。
最终,您必须对它们进行匹配,以使它们形成一个T Generate()
链,该链可以自给自足地构成一个新的有效实例。
请注意,通常您会处理不同的T
。没有任何隐含的假设,即它们都是相互关联的。由您决定如何对实例进行足够丰富的建模,以能够应用我在上面绘制的草图。
祝你好运。