1

我有一个无法解决的分段错误问题,也许有人可以看看它?更多信息在下面。该程序应该生成一个“完美”的迷宫。

迷宫.cp http://pastebin.com/gYazVk4h

迷宫.h http://pastebin.com/cT4GddgB

主文件

#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;
}

我也可以粘贴其他两个文件,但我相信将 em 保存在 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  
4

0 回答 0