diff options
Diffstat (limited to 'Source/Randomizer2Core.h')
-rw-r--r-- | Source/Randomizer2Core.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/Randomizer2Core.h b/Source/Randomizer2Core.h new file mode 100644 index 0000000..1b97fba --- /dev/null +++ b/Source/Randomizer2Core.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #pragma once | ||
2 | #include <vector> | ||
3 | |||
4 | struct Pos; | ||
5 | class Puzzle; | ||
6 | |||
7 | class Randomizer2Core { | ||
8 | public: | ||
9 | // CAUTION: Does not actually cut edges, just returns a list of suggested cuts. | ||
10 | // Cuts a number of edges equal to the number of colors in the color grid. | ||
11 | static std::vector<Pos> CutEdgesToBeUnique(const Puzzle& p); | ||
12 | static void CutEdgesNotOutsideNotBreakingSequence(Puzzle& p, size_t numEdges); | ||
13 | |||
14 | private: | ||
15 | static std::vector<Pos> CutEdgesInternal(const Puzzle& p, std::vector<std::vector<int>>& colorGrid, std::vector<Pos>& edges, size_t numEdges); | ||
16 | static void DebugColorGrid(const std::vector<std::vector<int>>& colorGrid); | ||
17 | static void FloodFill(const Puzzle& p, std::vector<std::vector<int>>& colorGrid, int color, int x, int y); | ||
18 | static void FloodFillOutside(const Puzzle& p, std::vector<std::vector<int>>& colorGrid, int x, int y); | ||
19 | static std::tuple<std::vector<std::vector<int>>, int> CreateColorGrid(const Puzzle& p); | ||
20 | }; | ||
21 | |||