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

More idiomatic language

This commit is contained in:
Daniel Barber 2018-03-15 08:45:46 -04:00
parent ea635086a0
commit 7cbc4f3acd
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
2 changed files with 12 additions and 12 deletions

View File

@ -9,7 +9,7 @@ defmodule Chess.Moves.Generator do
def moves(colour, board, {file, rank}, {fv, rv}) do
next_square = {file + fv, rank + rv}
cond do
can_take_piece?(colour, board, next_square) ->
can_capture_piece?(colour, board, next_square) ->
[next_square]
obstruction?(colour, board, next_square) ->
[]
@ -26,7 +26,7 @@ defmodule Chess.Moves.Generator do
outside_board?(move_square) ||
obstruction?(colour, board, move_square) ->
moves(colour, board, {file, rank}, moves)
can_take_piece?(colour, board, move_square) ->
can_capture_piece?(colour, board, move_square) ->
[move_square | moves(colour, board, {file, rank}, moves)]
true ->
[move_square | moves(colour, board, {file, rank}, moves)]
@ -38,7 +38,7 @@ defmodule Chess.Moves.Generator do
rank < 0 || rank > 7
end
defp can_take_piece?(colour, board, {file, rank}) do
defp can_capture_piece?(colour, board, {file, rank}) do
piece = board["#{file},#{rank}"]
piece && piece["colour"] != colour
end

View File

@ -3,7 +3,7 @@ defmodule Chess.Moves.Pawn do
def moves(board, {file, rank}) do
normal_moves(board, {file, rank}) ++
taking_moves(board, {file, rank})
capture_moves(board, {file, rank})
end
defp normal_moves(board, {file, rank}) do
@ -12,13 +12,13 @@ defmodule Chess.Moves.Pawn do
|> _moves(board, {file, rank})
end
defp taking_moves(board, {file, rank}) do
defp capture_moves(board, {file, rank}) do
colour =
board["#{file},#{rank}"]
|> Map.get("colour")
colour
|> _taking_moves(board, {file, rank}, patterns(colour))
|> _capture_moves(board, {file, rank}, patterns(colour))
end
defp patterns("white") do
@ -51,17 +51,17 @@ defmodule Chess.Moves.Pawn do
end
end
def _taking_moves(_colour, _board, {_file, _rank}, []), do: []
def _taking_moves(colour, board, {file, rank}, [{fv, rv} | moves]) do
def _capture_moves(_colour, _board, {_file, _rank}, []), do: []
def _capture_moves(colour, board, {file, rank}, [{fv, rv} | moves]) do
move_square = {file + fv, rank + rv}
if can_take_piece?(colour, board, move_square) do
[move_square | _taking_moves(colour, board, {file, rank}, moves)]
if can_capture_piece?(colour, board, move_square) do
[move_square | _capture_moves(colour, board, {file, rank}, moves)]
else
_taking_moves(colour, board, {file, rank}, moves)
_capture_moves(colour, board, {file, rank}, moves)
end
end
defp can_take_piece?(colour, board, {file, rank}) do
defp can_capture_piece?(colour, board, {file, rank}) do
piece = board["#{file},#{rank}"]
piece && piece["colour"] != colour
end