Класс C ++ внутри класса для алгоритма рекурсии BSP

Итак, у меня есть класс, который использует рекурсию для генерации уровня. Простой пример генерации подземелий BSP. Я использую код здесь. Но я пишу на C ++, поэтому у меня не может быть статического класса.

Проблема в том, что у меня есть указатель класса.

#ifndef RECTANGLE_H
#define RECTANGLE_H

class Rectangle
{
public:
Rectangle(int top, int left, int height, int width);
~Rectangle();

bool split();
void generate_dungeon();
private:
static int min_size;
Rectangle* dungeon;
Rectangle* left_child;
Rectangle* right_child;
int top, left, width, height;
};

#endif

редактировать

std::vector<Rectangle*> rectangles;
Rectangle root(0,0,map_height,map_width);

//std::cout<<root.split()<<std::endl;

rectangles.push_back(&root);//std::cout<<rectangles.at(0).split()<<std::endl;

while(rectangles.size() < 5)
{
int split_idx = Rng::rand_int(0, (rectangles.size()-1));
Rectangle* to_split = rectangles.at(split_idx);

std::cout<<rectangles.size()<<std::endl;
if((*to_split).split())
{
rectangles.push_back(((*to_split)get_left()));
rectangles.push_back(((*to_split)get_right()));
}
}
root.generate_dungeon();

Это решает проблему. Я называю ясно на std::vector после.

0

Решение

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

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

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

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