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 BareCoordinatesByRankByLogicalColour = ArrayByLogicalColour CoordinatesByRank
- type CoordinatesByLogicalColour = ArrayByLogicalColour [Coordinates]
- data CoordinatesByRankByLogicalColour
- findPassedPawnCoordinatesByLogicalColour :: CoordinatesByRankByLogicalColour -> CoordinatesByLogicalColour
- findPiecesOfColour :: CoordinatesByRankByLogicalColour -> LogicalColour -> [LocatedPiece]
- assocs :: CoordinatesByRankByLogicalColour -> [(Piece, [Coordinates])]
- listCoordinates :: CoordinatesByRankByLogicalColour -> [Coordinates]
- getKingsCoordinates :: CoordinatesByRankByLogicalColour -> LogicalColour -> Coordinates
- dereference :: CoordinatesByRankByLogicalColour -> LogicalColour -> Rank -> [Coordinates]
- sortCoordinates :: Transformation
Types
Type-synonyms
type BareCoordinatesByRankByLogicalColour = ArrayByLogicalColour CoordinatesByRank Source #
The coordinates of all the pieces of one rank, for both logical colours.
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).
:: CoordinatesByRankByLogicalColour | |
-> LogicalColour | The logical colour of the pieces to find. |
-> [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
:: CoordinatesByRankByLogicalColour | |
-> LogicalColour | The logical colour of the |
-> Coordinates |
Get the coordinates of the King
of the specified logical colour.
dereference :: CoordinatesByRankByLogicalColour -> LogicalColour -> Rank -> [Coordinates] Source #
Dereference the array.
Mutators
sortCoordinates :: Transformation Source #
Independently sort each list of coordinates.