chessica-0.1.0.0: A Library for Chess Game Logic
Copyright(c) Michael Szvetits 2023
LicenseBSD-3-Clause (see the file LICENSE)
Maintainertypedbyte@qualified.name
Stabilitystable
Portabilityportable
Safe HaskellSafe-Inferred
LanguageGHC2021

Chess.Piece

Description

Types and functions to create and analyze chess pieces.

Synopsis

Representing Pieces

data PieceType' Source #

Represents the piece types involved in a chess game on the type-level.

Constructors

Pawn' 
Knight' 
Bishop' 
Rook' 
Queen' 
King' 

Instances

Instances details
Read PieceType' Source # 
Instance details

Defined in Chess.Piece

Show PieceType' Source # 
Instance details

Defined in Chess.Piece

Eq PieceType' Source # 
Instance details

Defined in Chess.Piece

Ord PieceType' Source # 
Instance details

Defined in Chess.Piece

TestEquality PieceType Source # 
Instance details

Defined in Chess.Piece

Methods

testEquality :: forall (a :: k) (b :: k). PieceType a -> PieceType b -> Maybe (a :~: b) #

Show (Some PlacedPiece) Source # 
Instance details

Defined in Chess.Board.PlacedPiece

Show (Some Piece) Source # 
Instance details

Defined in Chess.Piece

Eq (Some PlacedPiece) Source # 
Instance details

Defined in Chess.Board.PlacedPiece

Eq (Some Piece) Source # 
Instance details

Defined in Chess.Piece

Methods

(==) :: Some Piece -> Some Piece -> Bool #

(/=) :: Some Piece -> Some Piece -> Bool #

Ord (Some PlacedPiece) Source # 
Instance details

Defined in Chess.Board.PlacedPiece

Ord (Some Piece) Source # 
Instance details

Defined in Chess.Piece

data PieceType t where Source #

Represents the piece types involved in a chess game on the term-level.

Instances

Instances details
TestEquality PieceType Source # 
Instance details

Defined in Chess.Piece

Methods

testEquality :: forall (a :: k) (b :: k). PieceType a -> PieceType b -> Maybe (a :~: b) #

HasField "type'" (PlacedPiece t) (PieceType t) Source # 
Instance details

Defined in Chess.Board.PlacedPiece

Methods

getField :: PlacedPiece t -> PieceType t #

Show (PieceType t) Source # 
Instance details

Defined in Chess.Piece

Eq (PieceType t) Source # 
Instance details

Defined in Chess.Piece

Methods

(==) :: PieceType t -> PieceType t -> Bool #

(/=) :: PieceType t -> PieceType t -> Bool #

Ord (PieceType t) Source # 
Instance details

Defined in Chess.Piece

data Piece t Source #

Represents a chess piece, which is a combination of its type and its color.

Constructors

Piece 

Fields

Instances

Instances details
Show (Piece t) Source # 
Instance details

Defined in Chess.Piece

Methods

showsPrec :: Int -> Piece t -> ShowS #

show :: Piece t -> String #

showList :: [Piece t] -> ShowS #

Eq (Piece t) Source # 
Instance details

Defined in Chess.Piece

Methods

(==) :: Piece t -> Piece t -> Bool #

(/=) :: Piece t -> Piece t -> Bool #

Ord (Piece t) Source # 
Instance details

Defined in Chess.Piece

Methods

compare :: Piece t -> Piece t -> Ordering #

(<) :: Piece t -> Piece t -> Bool #

(<=) :: Piece t -> Piece t -> Bool #

(>) :: Piece t -> Piece t -> Bool #

(>=) :: Piece t -> Piece t -> Bool #

max :: Piece t -> Piece t -> Piece t #

min :: Piece t -> Piece t -> Piece t #

Show (Some Piece) Source # 
Instance details

Defined in Chess.Piece

Eq (Some Piece) Source # 
Instance details

Defined in Chess.Piece

Methods

(==) :: Some Piece -> Some Piece -> Bool #

(/=) :: Some Piece -> Some Piece -> Bool #

Ord (Some Piece) Source # 
Instance details

Defined in Chess.Piece

somePiece :: PieceType t -> Color -> Some Piece Source #

Smart constructor for creating Some Piece.

fromSome :: Some PieceType -> Color -> Some Piece Source #

Smart constructor for creating Some Piece from Some PieceType.

Analyzing Piece Types

equals :: PieceType a -> PieceType b -> Bool Source #

Returns true if two piece types are the same.

Analyzing Pieces

same :: Piece a -> Piece b -> Bool Source #

Returns true if two pieces are the same.

isOfType :: PieceType t -> Piece a -> Bool Source #

Returns true if the given piece has the specified piece type.

assume :: Alternative f => PieceType t -> Piece a -> f (Piece t) Source #

Assumes that the given piece has the specified piece type.