Php 如何生成具有某些限制的管道(管)迷宫

Php 如何生成具有某些限制的管道(管)迷宫,php,algorithm,maps,game-physics,maze,Php,Algorithm,Maps,Game Physics,Maze,我有一张10x10大小的地图 每个贴图单元可以为空,也可以包含一个管段。管段类型有:直管、弯管、t形管和十字管。当然,每个段都可以旋转和翻转,其他段可以堆叠在其上 我有固定的起始和结束单元格-一个在[1,5],第二个在[10,5] 我需要创建一个从起点到终点的路径,但是需要将一些参数传递给生成器: 允许的类型:例如,只能使用直线段和弯头段。不允许交叉和t 允许使用的元素数。例如,从15岁到25岁。因此,生成器必须生成此范围的路径-不小于15且不大于25 我一般认为有两种策略: 创建一个通用迷宫(

我有一张10x10大小的地图

每个贴图单元可以为空,也可以包含一个管段。管段类型有:直管、弯管、t形管和十字管。当然,每个段都可以旋转和翻转,其他段可以堆叠在其上

我有固定的起始和结束单元格-一个在[1,5],第二个在[10,5]

我需要创建一个从起点到终点的路径,但是需要将一些参数传递给生成器:

  • 允许的类型:例如,只能使用直线段和弯头段。不允许交叉和t
  • 允许使用的元素数。例如,从15岁到25岁。因此,生成器必须生成此范围的路径-不小于15且不大于25
  • 我一般认为有两种策略:

  • 创建一个通用迷宫(不考虑它由管组成),然后将单元“翻译”到相关管段。但我不能控制线段的类型,也不能控制元素的数量
  • 迭代地将段添加到当前位置。例如,我在[1,5]中找到了源代码。我可以将任何允许的类型段添加到[2,5]。然后我可以将任何允许的类型段添加到[2,4]、[2,6]或[3,5](随机)中,依此类推。但问题是如何控制使用的元素的数量,以及如何确保我到达了终点

  • 有什么想法吗?

    你知道和吗?它们可能是一个很好的起点。你的意思是,你需要生成最短路径?或者任何满足约束的路径都可以?我需要生成任何由固定数量的元素组成的路径,“进入”和“退出”是固定的。因此,最短路径将设置为直管。但我需要使用额外的片段(T-like、L-like和+)使其更加复杂。