aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/util/pos.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'aoc-2020-gleam/src/util/pos.gleam')
-rw-r--r--aoc-2020-gleam/src/util/pos.gleam47
1 files changed, 0 insertions, 47 deletions
diff --git a/aoc-2020-gleam/src/util/pos.gleam b/aoc-2020-gleam/src/util/pos.gleam
deleted file mode 100644
index dd3d01d..0000000
--- a/aoc-2020-gleam/src/util/pos.gleam
+++ /dev/null
@@ -1,47 +0,0 @@
-import gleam/int
-import gleam/list
-import gleam/set.{Set}
-
-pub type Pos =
- #(Int, Int)
-
-pub const zero = #(0, 0)
-
-pub const directions8 = [
- #(1, 0),
- #(1, 1),
- #(0, 1),
- #(-1, 1),
- #(-1, 0),
- #(-1, -1),
- #(0, -1),
- #(1, -1),
-]
-
-pub fn add(p1: Pos, p2: Pos) -> Pos {
- #(p1.0 + p2.0, p1.1 + p2.1)
-}
-
-pub fn sub(p1: Pos, p2: Pos) -> Pos {
- #(p1.0 - p2.0, p1.1 - p2.1)
-}
-
-pub fn mul(p: Pos, by scalar: Int) -> Pos {
- #(p.0 * scalar, p.1 * scalar)
-}
-
-pub fn neighbours8(p: Pos) -> Set(Pos) {
- directions8
- |> list.map(with: add(p, _))
- |> set.from_list
-}
-
-pub fn manhattan_dist(from p1: Pos, to p2: Pos) -> Int {
- int.absolute_value(p1.0 - p2.0) + int.absolute_value(p1.1 - p2.1)
-}
-
-pub fn rotate_around_origin(this p: Pos, by times: Int) -> Pos {
- let assert Ok(sin) = list.at([0, -1, 0, 1], times)
- let assert Ok(cos) = list.at([1, 0, -1, 0], times)
- #(p.0 * cos - p.1 * sin, p.0 * sin + p.1 * cos)
-}