mirror of
https://github.com/danbee/chess
synced 2025-03-04 08:39:06 +00:00
Make code clearer
This commit is contained in:
parent
682ce67652
commit
bfa49b48b6
@ -3,28 +3,29 @@ defmodule Chess.Moves.Pawn do
|
||||
|
||||
def moves(board, {file, rank}) do
|
||||
board["#{file},#{rank}"]
|
||||
|> Map.get("colour")
|
||||
|> _moves(board, {file, rank})
|
||||
end
|
||||
|
||||
defp _moves(%{"colour" => "white"}, board, {file, rank}) do
|
||||
defp _moves("white", board, {file, rank}) do
|
||||
cond do
|
||||
obstruction?(board, {file, rank + 1}) -> []
|
||||
rank == 1 -> [
|
||||
{file, rank + 1} |
|
||||
_moves(%{"colour" => "white"}, board, {file, rank + 1})
|
||||
]
|
||||
true -> [{file, rank + 1}]
|
||||
obstruction?(board, {file, rank + 1}) ->
|
||||
[]
|
||||
rank == 1 ->
|
||||
[{file, rank + 1} | _moves("white", board, {file, rank + 1})]
|
||||
true ->
|
||||
[{file, rank + 1}]
|
||||
end
|
||||
end
|
||||
|
||||
defp _moves(%{"colour" => "black"}, board, {file, rank}) do
|
||||
defp _moves("black", board, {file, rank}) do
|
||||
cond do
|
||||
obstruction?(board, {file, rank - 1}) -> []
|
||||
rank == 6 -> [
|
||||
{file, rank - 1} |
|
||||
_moves(%{"colour" => "black"}, board, {file, rank - 1})
|
||||
]
|
||||
true -> [{file, rank - 1}]
|
||||
obstruction?(board, {file, rank - 1}) ->
|
||||
[]
|
||||
rank == 6 ->
|
||||
[{file, rank - 1} | _moves("black", board, {file, rank - 1})]
|
||||
true ->
|
||||
[{file, rank - 1}]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user