diff options
author | jbzdarkid <jbzdarkid@gmail.com> | 2019-11-16 14:22:39 -0800 |
---|---|---|
committer | jbzdarkid <jbzdarkid@gmail.com> | 2019-11-16 14:22:39 -0800 |
commit | fc8649b12fc1280d81e8dd4d35736ed69c0d9909 (patch) | |
tree | 7d6686c82dd6d738bdb54eb54d9989a4549cfdb5 /Source/Randomizer2Core.h | |
parent | 039b48fe49c31f6033a17aabab353b7b7696e11b (diff) | |
download | witness-tutorializer-fc8649b12fc1280d81e8dd4d35736ed69c0d9909.tar.gz witness-tutorializer-fc8649b12fc1280d81e8dd4d35736ed69c0d9909.tar.bz2 witness-tutorializer-fc8649b12fc1280d81e8dd4d35736ed69c0d9909.zip |
Keep WIP
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 | |||