Проблема создания лабиринта с ошибкой сегментации

У меня есть проблема с ошибками сегментации, которую я не могу решить, возможно, кто-то мог бы взглянуть на это? Более подробная информация ниже.
Программа должна генерировать «идеальный» лабиринт.

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

Я мог бы вставить и другие два файла, но я считаю, что разумнее держать их на пастбине, поскольку они довольно большие?

Во всяком случае, я получаю ошибку сегментации, когда я запускаю его.
ПРИМЕЧАНИЕ 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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]