Safe Haskell | None |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- A view of the board from the perspective of its pieces.
- cf. the square-centric model of the board defined in BishBosh.State.MaybePieceByCoordinates.
Synopsis
- type CoordinatesByLogicalColour = ArrayByLogicalColour [Coordinates]
- data CoordinatesByRankByLogicalColour
- findPassedPawnCoordinatesByLogicalColour :: CoordinatesByRankByLogicalColour -> CoordinatesByLogicalColour
- findPiecesOfColour :: LogicalColour -> CoordinatesByRankByLogicalColour -> [LocatedPiece]
- assocs :: CoordinatesByRankByLogicalColour -> [(Piece, [Coordinates])]
- listCoordinates :: CoordinatesByRankByLogicalColour -> [Coordinates]
- getKingsCoordinates :: LogicalColour -> CoordinatesByRankByLogicalColour -> Coordinates
- dereference :: LogicalColour -> Rank -> CoordinatesByRankByLogicalColour -> [Coordinates]
- fromMaybePieceByCoordinates :: MaybePieceByCoordinates -> CoordinatesByRankByLogicalColour
- movePiece :: Move -> Piece -> Maybe Rank -> Either Coordinates (Maybe Rank) -> Transformation
- sortCoordinates :: Transformation
Types
Type-synonyms
type CoordinatesByLogicalColour = ArrayByLogicalColour [Coordinates] Source #
A list of coordinates for each logical colour.
Data-types
data CoordinatesByRankByLogicalColour Source #
- This structure allows one to determine the set of coordinates where a type of piece is located.
- CAVEAT: the list of coordinates is unordered, so test for equality using
deconstruct . sortCoordinates
.
Instances
Functions
findPassedPawnCoordinatesByLogicalColour :: CoordinatesByRankByLogicalColour -> CoordinatesByLogicalColour Source #
For each logical colour, find the coordinates of any passed Pawn
s (https://en.wikipedia.org/wiki/Passed_pawn).
:: LogicalColour | The logical colour of the pieces to find. |
-> CoordinatesByRankByLogicalColour | |
-> [LocatedPiece] |
Locate all pieces of the specified logical colour.
assocs :: CoordinatesByRankByLogicalColour -> [(Piece, [Coordinates])] Source #
Build an association-list.
listCoordinates :: CoordinatesByRankByLogicalColour -> [Coordinates] Source #
Access the coordinate-lists.
Accessors
:: LogicalColour | The logical colour of the |
-> CoordinatesByRankByLogicalColour | |
-> Coordinates |
Get the coordinates of the King
of the specified logical colour.
dereference :: LogicalColour -> Rank -> CoordinatesByRankByLogicalColour -> [Coordinates] Source #
Dereference the array.
Constructor
fromMaybePieceByCoordinates :: MaybePieceByCoordinates -> CoordinatesByRankByLogicalColour Source #
Constructor.
Mutators
:: Move | |
-> Piece | The piece which moved. |
-> Maybe Rank | The (possibly promoted) rank to place at the destination. |
-> Either Coordinates (Maybe Rank) | Either the destination of any passed |
-> Transformation |
Adjust the array to reflect a new move.
sortCoordinates :: Transformation Source #
Independently sort each list of coordinates.