bishbosh-0.1.4.0: Plays chess.
Safe HaskellNone
LanguageHaskell2010

BishBosh.State.TurnsByLogicalColour

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
The ordered sequence of turns alternately made by the players of each logical colour.
Synopsis

Types

Type-synonyms

Data-types

data TurnsByLogicalColour turn Source #

The type used to hold a record of each player's turns.

Instances

Instances details
Eq turn => Eq (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

(Read turn, Show turn) => Read (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Show turn => Show (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Default (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Methods

def :: TurnsByLogicalColour turn #

NFData turn => NFData (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Methods

rnf :: TurnsByLogicalColour turn -> () #

Empty (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Null (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

ReflectableOnX turn => ReflectableOnX (TurnsByLogicalColour turn) Source # 
Instance details

Defined in BishBosh.State.TurnsByLogicalColour

Functions

inferNextLogicalColour :: TurnsByLogicalColour turn -> LogicalColour Source #

  • Derive the logical colour of the next player to move.
  • CAVEAT: the result can't be guaranteed if reflectOnX has been called.

countPlies :: TurnsByLogicalColour turn -> NPlies Source #

  • Count the total number of plies, regardless of the player.
  • CAVEAT: getNPlies is more efficient.

deriveMoveNumber :: TurnsByLogicalColour turn -> NMoves Source #

Derive the move-number, as used in PGN.

dereference :: TurnsByLogicalColour turn -> LogicalColour -> [turn] Source #

Dereference.

Constructors

fromAssocs :: Show turn => [(LogicalColour, [turn])] -> TurnsByLogicalColour turn Source #

Smart constructor.

Mutators

update :: [(LogicalColour, [turn])] -> Transformation turn Source #

  • Update the specified logical colours.
  • CAVEAT: obliterates any incumbent data for the specified logical colours.

prepend :: LogicalColour -> turn -> Transformation turn Source #

Prepend the specified turn.