From bff40e55c9c55fbc8439bb225d1937b2d805e629 Mon Sep 17 00:00:00 2001 From: jbzdarkid Date: Mon, 18 Nov 2019 09:16:16 -0800 Subject: Cleanup & progress on tutorial --- Source/Randomizer2Core.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'Source/Randomizer2Core.cpp') diff --git a/Source/Randomizer2Core.cpp b/Source/Randomizer2Core.cpp index 2659076..8bd5765 100644 --- a/Source/Randomizer2Core.cpp +++ b/Source/Randomizer2Core.cpp @@ -6,40 +6,46 @@ #include #include -std::vector Randomizer2Core::CutEdgesToBeUnique(const Puzzle& p) { - auto [colorGrid, numColors] = CreateColorGrid(p); +// @Cutnpaste +std::vector Randomizer2Core::CutEdges(const Puzzle& p, size_t numEdges) { std::vector edges; for (int x=0; x Randomizer2Core::CutEdges2(const Puzzle& p, size_t numEdges) { std::vector edges; + // Note the iterator bounds; we skip the outer edges. for (int x=1; x cutEdges = CutEdgesInternal(p, colorGrid, edges, numEdges); - for (Pos pos : cutEdges) { - p.grid[pos.x][pos.y].gap = Cell::Gap::FULL; - } + return CutEdgesInternal(p, edges, numEdges); } -std::vector Randomizer2Core::CutEdgesInternal(const Puzzle& p, std::vector>& colorGrid, std::vector& edges, size_t numEdges) { +std::vector Randomizer2Core::CutEdgesInternal(const Puzzle& p, std::vector& edges, size_t numEdges) { + auto [colorGrid, numColors] = CreateColorGrid(p); + assert(numEdges <= numColors); + std::vector cutEdges; for (int i=0; i Randomizer2Core::CutEdgesInternal(const Puzzle& p, std::vector< } } } + assert(cutEdges.size() == numEdges); return cutEdges; } -- cgit 1.4.1