Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 地形约束_Python_Game Engine - Fatal编程技术网

Python 地形约束

Python 地形约束,python,game-engine,Python,Game Engine,在我的空闲时间,我正在做一个基于文本/ascii(目前)的流氓类游戏作为研究(因为问题的背景相关) 目前,我正在尝试生成将在世界上使用的地形/房间。 世界应该是“无穷无尽的” 生成随机地形不是大问题。 我正在努力寻找一种可维护地添加约束的方法,如: “平原不能挨着山” 我可以构建一个大的决策树,但是,这意味着if currentTile==plain:if not挨着mountain和if currentTile==mountain:if not文本到plains 这是不可维护的,因为每个规则都

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

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

我可以构建一个大的决策树,但是,这意味着if currentTile==plain:if not挨着mountain和if currentTile==mountain:if not文本到plains

这是不可维护的,因为每个规则都必须在两个地方执行

我想知道这类问题的标准解决方案是什么


问候语

我不能完全确定我是否遵循了您的示例摘录,但您可以有一个包含2个元素集的列表,每个元素集都包含不允许的组合。然后你可以抬头看看

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

这不是一个老生常谈的问题,伙计…是的,我知道,但我正在努力学习,所以我不介意它是困难的还是挑战性的。我必须让它被禁止=[set([plain,mountains]),但这很有效。谢谢