bishbosh-0.1.0.0: Plays chess.
Safe HaskellNone
LanguageHaskell2010

BishBosh.ContextualNotation.QualifiedMoveForest

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION

Builds a rose-tree from a PGN Database, each node of which contains a move qualified by a move-type, & possibly also the ultimate result & the game's identifier.

Synopsis

Types

Type-synonyms

type Name = String Source #

Each game has a name.

type OnymousResult = (Name, Result) Source #

The name of a game, & it's result.

Data-types

data QualifiedMoveForest x y Source #

  • A representation of a PGN-database, where initial moves shared between games are merged into the trunk of a tree from which they each branch.
  • Many games will share standard opening moves, & a tree-structure (cf. a list) uses this to increase space-time efficiency.
  • Since there are many different initial moves, the structure is a flat-topped forest rather than a single apex tree.

Functions

showsNames Source #

Arguments

:: Maybe Int

The optional maximum number of names to show.

-> [Name] 
-> ShowS 

Shows a list of the names of archived games, optionally capped at the specified number.

findMinimumPieces :: QualifiedMoveForest x y -> NPieces Source #

Find the minimum number of pieces in any of the recorded games.

count :: QualifiedMoveForest x y -> (NGames, NPlies) Source #

Count the number of games & plies.

Constructors

fromPGNDatabase :: (Eq x, Eq y) => PGNDatabase x y -> QualifiedMoveForest x y Source #

Constructor.

toGameTree :: (Enum x, Enum y, Ord x, Ord y, Show x, Show y) => QualifiedMoveForest x y -> GameTree x y Source #

  • Convert the specified qualified-move forest to a game-tree.
  • N.B.: to construct a tree from the specified forest, the default initial game is included at the apex.

Mutators

mergePGNDatabase :: (Eq x, Eq y) => PGNDatabase x y -> QualifiedMoveForest x y -> QualifiedMoveForest x y Source #

Include the specified PGN-database into the forest, thus allowing more than one PGNDatabase to be read.