From 0635accfdd1bf82d7d6a7412204f0285f0ada6a1 Mon Sep 17 00:00:00 2001 From: Mafinar K Date: Fri, 22 Dec 2023 19:50:31 -0500 Subject: [PATCH] Add surrounding 4 directions --- lib/algorithms/grid.ex | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/algorithms/grid.ex b/lib/algorithms/grid.ex index 594143d..f8afa55 100644 --- a/lib/algorithms/grid.ex +++ b/lib/algorithms/grid.ex @@ -84,7 +84,23 @@ defmodule AdventOfCode.Algorithms.Grid do def surrounding8({x, y}) do Enum.map( [{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {1, 1}, {-1, -1}, {1, -1}, {-1, 1}], - fn {dx, dy} -> {x + dx, y + dy} end + &add(&1, {x, y}) + ) + end + + @doc """ + Gets the co-ordinates of 4 surrounding neighbours in a 2D grid. + + ## Example + + iex> Grid.surrounding4({0, 0}) + [{1, 0}, {-1, 0}, {0, 1}, {0, -1}] + + """ + def surrounding4({x, y}) do + Enum.map( + [{1, 0}, {-1, 0}, {0, 1}, {0, -1}], + &add(&1, {x, y}) ) end