summary refs log tree commit diff stats
path: root/Source/Puzzle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Puzzle.cpp')
-rw-r--r--Source/Puzzle.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/Puzzle.cpp b/Source/Puzzle.cpp index d0ede27..2f399a7 100644 --- a/Source/Puzzle.cpp +++ b/Source/Puzzle.cpp
@@ -27,6 +27,25 @@ void Puzzle::NewGrid(int newWidth, int newHeight) {
27 for (int x=0; x<width; x++) grid[x].resize(height); 27 for (int x=0; x<width; x++) grid[x].resize(height);
28} 28}
29 29
30Pos Puzzle::GetSymmetricalPos(int x, int y) const {
31 if (symmetry != Symmetry::NONE) {
32 if (pillar) {
33 x += width/2;
34 if (symmetry & Symmetry::X) {
35 x = width - x;
36 }
37 } else {
38 if (symmetry & Symmetry::X) {
39 x = (width-1) - x;
40 }
41 }
42 if (symmetry & Symmetry::Y) {
43 y = (height-1) - y;
44 }
45 }
46 return Pos{x, y};
47}
48
30int Puzzle::Mod(int x) const { 49int Puzzle::Mod(int x) const {
31 if (!pillar) return x; 50 if (!pillar) return x;
32 return (x + width * height * 2) % width; 51 return (x + width * height * 2) % width;