【问题标题】:Recursive backtracking maze generator (start/finish)递归回溯迷宫生成器(开始/结束)
【发布时间】:2017-05-30 16:15:45
【问题描述】:

假设迷宫已经由算法生成。你怎么知道迷宫的起点和终点在哪里?因为一开始,你随机选择一个单元格,算法完成后你不知道迷宫在哪里结束

【问题讨论】:

  • 我认为您的问题没有提供足够的信息。
  • 假设你有一个大迷宫,只有一个入口和一个出口,你可以从任何地方开始,最终你会在这两个地方结束.. 但你需要能够知道你在开始/结束。
  • 你可以选择任何你喜欢的开始和退出。
  • 对不起,如果我不具体,我在这里提出了一个更详细的新问题:

标签: algorithm backtracking recursive-backtracking


【解决方案1】:

我想说首先你的问题不是很清楚,你没有对你的要求提供任何具体的解释,但我仍然会尝试回答你的问题。

在编写递归函数时要记住的第一件事是,它总是需要一个基本条件,基本条件是指一段将充当端点的代码,否则您的代码将无限运行并且您的系统可能会崩溃.

现在,在您的情况下,由于您在迷宫中,因此您的基本条件将是当您到达迷宫的边界时,这就是您将结果返回到上一次调用的时间。

假设我有一个 10X10 的迷宫。所以在这种情况下,我的墙将位于:-

(0,0)
(0,10)
(10,0)
(10,10)

因此,如果我击中了他们中的任何一个,那么我应该返回。就代码而言,您的基本情况看起来像这样

if(x < 0 || x > 10 || y < 0 || y > 10)
{
   return <some_value>;
}

希望你能明白。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多