aboutsummaryrefslogtreecommitdiff
path: root/src/2017/day21/aoc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/2017/day21/aoc.h')
-rw-r--r--src/2017/day21/aoc.h40
1 files changed, 8 insertions, 32 deletions
diff --git a/src/2017/day21/aoc.h b/src/2017/day21/aoc.h
index 1f743c2..4b2c464 100644
--- a/src/2017/day21/aoc.h
+++ b/src/2017/day21/aoc.h
@@ -20,18 +20,11 @@ struct square2 {
std::vector<square2> flip() const noexcept {
square2 s0;
- s0.s[0] = s[1];
- s0.s[1] = s[0];
- s0.s[2] = s[3];
- s0.s[3] = s[2];
-
- square2 s1;
- s1.s[0] = s[2];
- s1.s[1] = s[3];
- s1.s[2] = s[0];
- s1.s[3] = s[1];
+ for (int i = 0; i < 4; i++) {
+ s0.s[i] = s[i] == '#' ? '.' : '#';
+ }
- return {s0, s1};
+ return {s0};
}
std::vector<square2> rotate() const noexcept {
@@ -106,28 +99,11 @@ struct square3 {
std::vector<square3> flip() const noexcept {
square3 s0;
- s0.s[0] = s[2];
- s0.s[1] = s[1];
- s0.s[2] = s[0];
- s0.s[3] = s[5];
- s0.s[4] = s[4];
- s0.s[5] = s[3];
- s0.s[6] = s[8];
- s0.s[7] = s[7];
- s0.s[8] = s[6];
-
- square3 s1;
- s1.s[0] = s[6];
- s1.s[6] = s[0];
- s1.s[3] = s[3];
- s1.s[1] = s[7];
- s1.s[7] = s[1];
- s1.s[4] = s[4];
- s1.s[2] = s[8];
- s1.s[8] = s[2];
- s1.s[5] = s[5];
+ for (int i = 0; i < 9; i++) {
+ s0.s[i] = s[i] == '#' ? '.' : '#';
+ }
- return {s0, s1};
+ return {s0};
}
std::vector<square3> rotate() const noexcept {