Both in the book pdf and code zip:
def legal_drop?(%{active_pento: pento, points: board_points}=board) do
board_points
points_on_board =
The presence of board_points prior to points_on_board is extraneous
warning: variable board_points in code block has no effect as it is never returned (remove the variable or assign it to _ to avoid warnings)
lib/pento/game/board.ex:100: Pento.Game.Board.legal_drop?/1
In the code for overlapping?
on page 358:
Enum.count(p1 -- p2) != 5
It would be clearer is this matched the prose where it explains that:
If any points are removed, then the resulting count will be less than five
Enum.count(p1 -- p2) < 5