我想做一个随机的项目在游戏中拉-穆拉纳。然而,一些项目的安排将意味着游戏无法完成。有时只有一组物品需要通过障碍,而另一些时候,有多组物品可以通过一个障碍。
例如,要到达出生室,你需要有羽毛,格斗爪,爱马仕靴和飞机模型,或者有Isis吊坠和爱马仕靴,或者杀死第五个老板,并拥有飞机模型。这意味着,任何将爱马仕靴和飞机模型放置在出生室的东西都使游戏无法完成。
实际上,我试图按随机顺序排列一个列表,其中一些项目永远不可能在一个索引范围内,而一些项目只有在另一个索引范围内时才能在一个索引范围内。有比拒绝和重新生成非法配置更好的方法吗?
发布于 2017-03-03 19:08:22
有时,生成有效配置的最佳方法是做出有效的配置并逐步构建更大的配置。
我对拉-穆拉娜不熟悉。我第一次听到这个消息是在六十秒钟前,当时我正在读你的问题。我将假设这些位置是线性访问的,但是我们也许可以推广下面的算法。
假设位置为A、B、C等,对于每个X位置,我们知道它需要项X1、X2等.:
根据La-Mulana的具体情况,需要对上述算法进行调整.
发布于 2017-03-03 18:06:38
这里可能工作的一种方法是创建从整数到合法配置的映射。也就是说,0将是第一个合法配置,1将是第二个合法配置。这只是一个简单的问题,在一个范围内生成一个随机数,并将其扩展到合法的配置。
当然,从数字映射到配置的函数就是诀窍。我不熟悉游戏规则,所以我不清楚这是一个可能的解决方案,或者它是否值得付出努力。这在很大程度上取决于使用蛮力方法生成非法配置的可能性。如果你对问题的形式提供了更多的细节,接下来应该有更多的具体建议。
发布于 2021-12-06 00:42:11
一种遗传编程方法可能会奏效。
https://softwareengineering.stackexchange.com/questions/343416
复制相似问题