Packages
islands_grid
0.1.10
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
A grid (map of maps) and functions for the Game of Islands.
Current section
Files
Jump to
Current section
Files
lib/islands/grid/tile.ex
defmodule Islands.Grid.Tile do
@moduledoc "Convenience module for client applications."
alias IO.ANSI.Plus, as: ANSI
@spec new(atom) :: ANSI.ansidata()
def new(:atoll), do: format(:sandy_brown, "<a>")
def new(:dot), do: format(:teak, "<d>")
def new(:l_shape), do: format(:tenne, "<l>")
def new(:s_shape), do: format(:khaki, "<s>")
def new(:square), do: format(:chocolate, "<q>")
def new(:atoll_hit), do: format(:islamic_green, ">a<")
def new(:dot_hit), do: format(:spring_green, ">d<")
def new(:l_shape_hit), do: format(:dark_green, ">l<")
def new(:s_shape_hit), do: format(:pale_green, ">s<")
def new(:square_hit), do: format(:lawn_green, ">q<")
def new(:hit), do: format(:islamic_green, ">h<")
def new(:miss), do: format(:blue_ribbon, "<m>")
# def new(:board_miss), do: format(:dodger_blue, "<m>")
def new(:board_miss), do: format(:blue_ribbon, "<m>")
def new(nil), do: format(:deep_sky_blue, "<o>")
## Private functions
@spec format(atom, String.t()) :: ANSI.ansidata()
defp format(attr, value),
do: ANSI.format([attr, :"#{attr}_background", value], true)
end