Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Java 递归分割随机迷宫生成_Java_Algorithm_Recursion_Maze - Fatal编程技术网

Java 递归分割随机迷宫生成

Java 递归分割随机迷宫生成,java,algorithm,recursion,maze,Java,Algorithm,Recursion,Maze,我目前正在做一个项目,我想随机生成一个游戏迷宫。在研究了迷宫生成的性能水平等之后,我决定使用递归除法。虽然算法的解释在某种程度上是可以理解的,但我正在努力用一种伪格式来描述算法,以便我能够完全理解它并开始编码。有人能帮我详细解释一下这个过程或者一些伪代码吗?非常感谢您的帮助 编辑:据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么 从一个空字段开始 用墙将场地平分,水平或垂直。在墙上添加一个通道 对墙两侧的区域重复步骤2 继续递归操作,直到迷宫达到所

我目前正在做一个项目,我想随机生成一个游戏迷宫。在研究了迷宫生成的性能水平等之后,我决定使用递归除法。虽然算法的解释在某种程度上是可以理解的,但我正在努力用一种伪格式来描述算法,以便我能够完全理解它并开始编码。有人能帮我详细解释一下这个过程或者一些伪代码吗?非常感谢您的帮助

编辑:据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么

  • 从一个空字段开始
  • 用墙将场地平分,水平或垂直。在墙上添加一个通道
  • 对墙两侧的区域重复步骤2
  • 继续递归操作,直到迷宫达到所需的分辨率
  • 从一个空字段开始
  • 用墙将场地平分,水平或垂直。在墙上添加一个通道
  • 对墙两侧的区域重复步骤2
  • 继续递归操作,直到迷宫达到所需的分辨率
  • 从一个空字段开始
  • 用墙将场地平分,水平或垂直。在墙上添加一个通道
  • 对墙两侧的区域重复步骤2
  • 继续递归操作,直到迷宫达到所需的分辨率
  • 从一个空字段开始
  • 用墙将场地平分,水平或垂直。在墙上添加一个通道
  • 对墙两侧的区域重复步骤2
  • 继续递归操作,直到迷宫达到所需的分辨率


  • 你对哪一部分有问题?@Bex据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么?道歉,如果问题含糊不清,如果这有更多帮助,我会编辑问题,包括这个细节杰米斯·巴克制作了一个优秀的迷宫创作博客系列。他关于递归除法迷宫生成的文章非常好,易于阅读。你有什么问题?@Bex据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么?道歉,如果问题含糊不清,如果这有更多帮助,我会编辑问题,包括这个细节杰米斯·巴克制作了一个优秀的迷宫创作博客系列。他关于递归除法迷宫生成的文章非常好,易于阅读。你有什么问题?@Bex据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么?道歉,如果问题含糊不清,如果这有更多帮助,我会编辑问题,包括这个细节杰米斯·巴克制作了一个优秀的迷宫创作博客系列。他关于递归除法迷宫生成的文章非常好,易于阅读。你有什么问题?@Bex据我所知,我需要决定是水平分割还是垂直分割。这个决定是如何做出的?关于起点和终点的划分过程是什么?道歉,如果问题含糊不清,如果这有更多帮助,我会编辑问题,包括这个细节杰米斯·巴克制作了一个优秀的迷宫创作博客系列。他关于递归除法迷宫生成的文章非常好,易于阅读。二等分实际上就是选择一行或一列?然后将每一面临时存储为一个新的2d阵列,并将其平分,直到达到分辨率?你会建议删除通道作为这些步骤的一部分,还是等到所有的墙都建成后再删除?编辑:实际上放弃临时2d阵列的想法,即使可能,至少也会非常混乱。将整个迷宫存储为2d阵列。开始时,迷宫是空的,算法添加和删除墙,直到达到整数限制。每个元素都包含南部和/或东部是否有墙的信息。您可以使用
    0b01
    0b10
    以及一些位掩码来表示墙。平分实际上只是选择一行或一列?然后将每一面临时存储为一个新的2d阵列,并将其平分,直到达到分辨率?你会建议删除通道作为这些步骤的一部分,还是等到所有的墙都建成后再删除?编辑:实际上放弃临时2d阵列的想法,即使可能,至少也会非常混乱。将整个迷宫存储为2d阵列。开始时,迷宫是空的,算法添加和删除墙,直到达到整数限制。每个元素都包含南部和/或东部是否有墙的信息。您可以使用
    0b01
    0b10
    以及一些位掩码来表示墙。平分实际上只是选择一行或一列?然后将每一面临时存储为一个新的2d阵列,并将其平分,直到达到分辨率?你会建议删除通道作为这些步骤的一部分,还是等到所有的墙都建成后再删除?编辑:实际上放弃临时2d阵列的想法,即使可能,至少也会非常混乱。将整个迷宫存储为2d阵列。开始时,迷宫是空的,算法添加和删除墙,直到达到整数限制。每个元素都包含inf