在我的业余时间,我正在做一个基于文本/ ascii(目前)的无赖类游戏作为研究(相关的,因为有问题的上下文)
目前,我正在尝试生成将在世界上使用的地形/房间。
世界应该是“无尽的”。

生成随机地形并不是大问题。
我正在努力寻找一种方法来可维护地添加约束,例如:
平原不能紧挨山峰

我可以建立一个很大的决策树,但是,这意味着if currentTile == plain:如果不靠近山峰,以及if currentTile == mountain:如果不是文本到平原。

这是无法维护的,因为每个规则都必须在2个地方执行。

我想知道存在针对此类问题的标准解决方案吗?

问候

最佳答案

我不完全确定我会遵循您的示例摘录,但您可以列出2个元素集,每个元素集包含不允许的组合。那你可以抬头

disallowed = [set(plain, mountains)]
if set(currentTile, newTile) not in disallowed:
    #rest of code

08-26 13:41