具有分段错误的迷宫生成问题

时间:2013-05-27 15:34:00

标签: c++ stack maze

我遇到了一些我无法解决的分段错误问题,也许有人可以看看它?更多信息如下。 该计划应该产生一个“完美”的迷宫。

Maze.cp http://pastebin.com/gYazVk4h

Maze.h http://pastebin.com/cT4GddgB

的main.cpp

#include "Maze.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <getopt.h> // includes the getopt command for input flags
#include <stdlib.h> // for EXIT_FAILURE and EXIT_SUCCESS
#include <stack>

using namespace std;
int main(int argc, char const *argv[])
{
        Maze labyrinth;
        labyrinth.Create_maze(15, 40);
        labyrinth.Print_maze();


        return 0;
}

我也可以粘贴其他两个文件,但我相信将它们放在pastebin上更聪明,因为它们非常大?

无论如何,当我运行它时,我会遇到分段错误。 注1 : 在第38行和第39行,您必须取消注释while循环并注释掉for循环。 我正在使用for循环进行调试。

注2 : 我认为问题出在第119-121行,但我不确定,我尝试了各种各样的方法,无法弄清楚如何解决它。

注3 : 我正在遵循Mazeworks DOT com中的以下伪代码:

create a CellStack (LIFO) to hold a list of cell locations 
set TotalCells = number of cells in grid 
choose a cell at random and call it CurrentCell 
set VisitedCells = 1 
while VisitedCells < TotalCells 
    find all neighbors of CurrentCell with all walls intact  
    if one or more found 
        choose one at random 
        knock down the wall between it and CurrentCell 
        push CurrentCell location on the CellStack 
        make the new cell CurrentCell 
        add 1 to VisitedCells else 
        pop the most recent cell entry off the CellStack 
        make it CurrentCell endIf 

endWhile  

0 个答案:

没有答案