aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/util
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-12-23 12:47:11 +0100
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-12-23 12:47:11 +0100
commit5aa24ac572ab5451e187f9accfa6833634c58215 (patch)
tree45b9daab20e182dcc5f65ec0271727fb847f6e7d /aoc-2020-gleam/src/util
parent1b8b85dd5f0aead5fb97ee9d8aa99d877c6a79e7 (diff)
downloadgleam_aoc2020-5aa24ac572ab5451e187f9accfa6833634c58215.tar.gz
gleam_aoc2020-5aa24ac572ab5451e187f9accfa6833634c58215.zip
Solve part 1 of day 24
Diffstat (limited to 'aoc-2020-gleam/src/util')
-rw-r--r--aoc-2020-gleam/src/util/hex.gleam21
1 files changed, 21 insertions, 0 deletions
diff --git a/aoc-2020-gleam/src/util/hex.gleam b/aoc-2020-gleam/src/util/hex.gleam
new file mode 100644
index 0000000..21db192
--- /dev/null
+++ b/aoc-2020-gleam/src/util/hex.gleam
@@ -0,0 +1,21 @@
+pub opaque type Hex {
+ Hex(q: Int, r: Int, s: Int)
+}
+
+pub const zero = Hex(q: 0, r: 0, s: 0)
+
+pub const e = Hex(q: 1, r: 0, s: -1)
+
+pub const se = Hex(q: 0, r: 1, s: -1)
+
+pub const sw = Hex(q: -1, r: 1, s: 0)
+
+pub const w = Hex(q: -1, r: 0, s: 1)
+
+pub const nw = Hex(q: 0, r: -1, s: 1)
+
+pub const ne = Hex(q: 1, r: -1, s: 0)
+
+pub fn add(a: Hex, b: Hex) -> Hex {
+ Hex(q: a.q + b.q, r: a.r + b.r, s: a.s + b.s)
+}