在我的空闲时间我正在制作一个基于文本的/ ascii(现在)类似流氓的游戏作为一项研究(相关的因为问题的背景) 目前,我正在尝试生成将在世界上使用的地形/房间。 世界应该是“无止境的”。
生成随机地形不是大问题。 我正在努力寻找一种方法来维持添加约束,如: “平原不能靠近山”
我可以建立一个重要的决策树,但是,这意味着if currentTile == plain:如果不是在山旁边,如果是currentTile ==山:如果不是文本到平原。
这是不可维护的,因为每个规则都必须在2个地方实施。
我想知道这类问题的标准解决方案是什么?
问候
答案 0 :(得分:1)
我不完全确定我会关注您的示例摘录,但您可以拥有2个元素集的列表,每个元素集包含不允许的组合。然后你可以查找
disallowed = [set(plain, mountains)]
if set(currentTile, newTile) not in disallowed:
#rest of code