1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/lib/chess/moves/king.ex

16 lines
374 B
Elixir

defmodule Chess.Moves.King do
@moduledoc false
def moves(_board, {file, rank}) do
patterns()
|> Enum.map(fn ({fv, rv}) -> {file + fv, rank + rv} end)
|> Enum.reject(fn ({file, rank}) ->
file < 0 || rank < 0 || file > 7 || rank > 7
end)
end
defp patterns do
[{1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}, {-1, 1}, {0, 1}]
end
end