summaryrefslogtreecommitdiff
path: root/lib/chessh/utils.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chessh/utils.ex')
-rw-r--r--lib/chessh/utils.ex24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/chessh/utils.ex b/lib/chessh/utils.ex
index 3e83d5e..20a8b96 100644
--- a/lib/chessh/utils.ex
+++ b/lib/chessh/utils.ex
@@ -1,4 +1,23 @@
defmodule Chessh.Utils do
+ @ascii_chars Application.compile_env!(:chessh, :ascii_chars_json_file)
+ |> File.read!()
+ |> Jason.decode!()
+
+ @clear_codes [
+ IO.ANSI.clear(),
+ IO.ANSI.home()
+ ]
+
+ def ascii_chars(), do: @ascii_chars
+ def clear_codes(), do: @clear_codes
+
+ def center_rect({rect_width, rect_height}, {parent_width, parent_height}) do
+ {
+ div(parent_height - rect_height, 2),
+ div(parent_width - rect_width, 2)
+ }
+ end
+
def pid_to_str(pid) do
pid
|> :erlang.pid_to_list()
@@ -11,4 +30,9 @@ defmodule Chessh.Utils do
split = String.split(text, "\n")
{Enum.reduce(split, 0, fn x, acc -> max(acc, String.length(x)) end), length(split)}
end
+
+ def wrap_around(index, delta, length) do
+ calc = index + delta
+ if(calc < 0, do: length, else: 0) + rem(calc, length)
+ end
end