mirror of
https://github.com/danbee/chess
synced 2025-03-04 08:39:06 +00:00
Re-organise pieces
This commit is contained in:
parent
18aa9faab4
commit
6c944243fb
@ -1,12 +1,12 @@
|
||||
defmodule Chess.Moves do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Pawn
|
||||
alias Chess.Moves.Bishop
|
||||
alias Chess.Moves.Knight
|
||||
alias Chess.Moves.Rook
|
||||
alias Chess.Moves.Queen
|
||||
alias Chess.Moves.King
|
||||
alias Chess.Moves.Pieces.Pawn
|
||||
alias Chess.Moves.Pieces.Bishop
|
||||
alias Chess.Moves.Pieces.Knight
|
||||
alias Chess.Moves.Pieces.Rook
|
||||
alias Chess.Moves.Pieces.Queen
|
||||
alias Chess.Moves.Pieces.King
|
||||
|
||||
def available(board, {file, rank}) do
|
||||
piece = board["#{file},#{rank}"]
|
||||
|
||||
@ -2,7 +2,7 @@ defmodule Chess.Moves.Piece do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Generator
|
||||
alias Chess.Moves.Knight
|
||||
alias Chess.Moves.Pieces.Knight
|
||||
|
||||
def attacked?(board, {file, rank}) do
|
||||
attacked_by_rook_or_queen?(board, {file, rank}) ||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.Bishop do
|
||||
defmodule Chess.Moves.Pieces.Bishop do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Generator
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.King do
|
||||
defmodule Chess.Moves.Pieces.King do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Generator
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.Knight do
|
||||
defmodule Chess.Moves.Pieces.Knight do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Generator
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.Pawn do
|
||||
defmodule Chess.Moves.Pieces.Pawn do
|
||||
@moduledoc false
|
||||
|
||||
def moves(board, {file, rank}) do
|
||||
@ -1,8 +1,8 @@
|
||||
defmodule Chess.Moves.Queen do
|
||||
defmodule Chess.Moves.Pieces.Queen do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Rook
|
||||
alias Chess.Moves.Bishop
|
||||
alias Chess.Moves.Pieces.Rook
|
||||
alias Chess.Moves.Pieces.Bishop
|
||||
|
||||
def moves(board, {file, rank}) do
|
||||
Rook.moves(board, {file, rank}) ++
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.Rook do
|
||||
defmodule Chess.Moves.Pieces.Rook do
|
||||
@moduledoc false
|
||||
|
||||
alias Chess.Moves.Generator
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.BishopTest do
|
||||
defmodule Chess.Moves.Pieces.BishopTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.KingTest do
|
||||
defmodule Chess.Moves.Pieces.KingTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.KnightTest do
|
||||
defmodule Chess.Moves.Pieces.KnightTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves
|
||||
@ -1,17 +1,17 @@
|
||||
defmodule Chess.Moves.PawnTest do
|
||||
defmodule Chess.Moves.Pieces.PawnTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves.Pawn
|
||||
alias Chess.Moves
|
||||
|
||||
test "white pawn can move forward one or two spaces" do
|
||||
moves = Pawn.moves(default_board(), {4, 1})
|
||||
moves = Moves.available(default_board(), {4, 1})
|
||||
|
||||
expected_moves = [{4, 2}, {4, 3}]
|
||||
assert moves == expected_moves
|
||||
end
|
||||
|
||||
test "black pawn can move forward one or two spaces" do
|
||||
moves = Pawn.moves(default_board(), {4, 6})
|
||||
moves = Moves.available(default_board(), {4, 6})
|
||||
|
||||
expected_moves = [{4, 5}, {4, 4}]
|
||||
assert moves == expected_moves
|
||||
@ -19,7 +19,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
|
||||
test "white pawn not on starting square can move forward one space" do
|
||||
board = %{"4,2" => %{"type" => "pawn", "colour" => "white"}}
|
||||
moves = Pawn.moves(board, {4, 2})
|
||||
moves = Moves.available(board, {4, 2})
|
||||
|
||||
expected_moves = [{4, 3}]
|
||||
assert moves == expected_moves
|
||||
@ -27,7 +27,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
|
||||
test "black pawn not on starting square can move forward one space" do
|
||||
board = %{"4,5" => %{"type" => "pawn", "colour" => "black"}}
|
||||
moves = Pawn.moves(board, {4, 5})
|
||||
moves = Moves.available(board, {4, 5})
|
||||
|
||||
expected_moves = [{4, 4}]
|
||||
assert moves == expected_moves
|
||||
@ -38,7 +38,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
"4,1" => %{"type" => "pawn", "colour" => "white"},
|
||||
"4,3" => %{"type" => "pawn", "colour" => "black"},
|
||||
}
|
||||
moves = Pawn.moves(board, {4, 1})
|
||||
moves = Moves.available(board, {4, 1})
|
||||
|
||||
expected_moves = [{4, 2}]
|
||||
assert moves == expected_moves
|
||||
@ -49,7 +49,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
"4,1" => %{"type" => "pawn", "colour" => "white"},
|
||||
"4,2" => %{"type" => "pawn", "colour" => "black"},
|
||||
}
|
||||
moves = Pawn.moves(board, {4, 1})
|
||||
moves = Moves.available(board, {4, 1})
|
||||
|
||||
expected_moves = []
|
||||
assert moves == expected_moves
|
||||
@ -60,7 +60,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
"4,2" => %{"type" => "pawn", "colour" => "white"},
|
||||
"4,3" => %{"type" => "pawn", "colour" => "black"},
|
||||
}
|
||||
moves = Pawn.moves(board, {4, 2})
|
||||
moves = Moves.available(board, {4, 2})
|
||||
|
||||
expected_moves = []
|
||||
assert moves == expected_moves
|
||||
@ -71,7 +71,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
"4,2" => %{"type" => "pawn", "colour" => "white"},
|
||||
"5,3" => %{"type" => "pawn", "colour" => "black"},
|
||||
}
|
||||
moves = Pawn.moves(board, {4, 2})
|
||||
moves = Moves.available(board, {4, 2})
|
||||
|
||||
expected_moves = [{4, 3}, {5, 3}]
|
||||
assert moves == expected_moves
|
||||
@ -82,7 +82,7 @@ defmodule Chess.Moves.PawnTest do
|
||||
"6,6" => %{"type" => "pawn", "colour" => "black"},
|
||||
"5,5" => %{"type" => "pawn", "colour" => "white"},
|
||||
}
|
||||
moves = Pawn.moves(board, {6, 6})
|
||||
moves = Moves.available(board, {6, 6})
|
||||
|
||||
expected_moves = [{6, 5}, {6, 4}, {5, 5}]
|
||||
assert moves == expected_moves
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.QueenTest do
|
||||
defmodule Chess.Moves.Pieces.QueenTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves
|
||||
@ -1,4 +1,4 @@
|
||||
defmodule Chess.Moves.RookTest do
|
||||
defmodule Chess.Moves.Pieces.RookTest do
|
||||
use Chess.DataCase
|
||||
|
||||
alias Chess.Moves
|
||||
Loading…
Reference in New Issue
Block a user