bishbosh-0.0.0.3: Plays chess.

Safe HaskellNone
LanguageHaskell2010

BishBosh.Attribute.Rank

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
Defines the data-type which represents the rank of a chess-piece.
CAVEAT
This term is also commonly used to refer to a row of the board.

Synopsis

Type-classes

class Promotable a where Source #

An interface to which data which can represent Pawn-promotion, can implement.

Minimal complete definition

getMaybePromotionRank

Types

Type-synonyms

type EvaluateRank rankValue = Rank -> rankValue Source #

The type of a function which returns a rank's value.

type ByRank = Array Rank Source #

A boxed array indexed by rank, of arbitrary values.

Data-types

data Rank Source #

The component of a chess-piece which is independent of its colour.

Constructors

Pawn 
Rook 
Knight 
Bishop 
Queen 
King 

Instances

Constants

tag :: String Source #

Used to qualify XML.

flank :: [Rank] Source #

The distinct ranks of the constant ordered range of those pieces of which each side has exactly two.

promotionProspects :: [Rank] Source #

The constant list of distinct rank to which a Pawn may legally be promoted; though there's no point in promotion to other than Queen or Knight.

defaultPromotionRank :: Rank Source #

The rank to which a Pawn is, in the absence of instruction, promoted.

plodders :: [Rank] Source #

The subset of ranks which can only move in single steps.

fixedAttackRange :: [Rank] Source #

The subset of ranks which attack over a fixed range.

individuallySufficientMaterial :: [Rank] Source #

The subset of ranks which lacking support, are sufficient to force checkmate.

pieces :: [Rank] Source #

The distinct ranks of the pieces from which the back row is composed, i.e. everything except Pawns.

nobility :: [Rank] Source #

The ordered ranks of the pieces from which the back row is composed, including duplicates.

range :: [Rank] Source #

The constant ascending list of all ranks.

expendable :: [Rank] Source #

Those ranks which can be taken.

nDistinctRanks :: NRanks Source #

The constant number of distinct ranks.

Functions

compareByLVA :: Ord rankValue => EvaluateRank rankValue -> Rank -> Rank -> Ordering Source #

  • Given two alternative capture moves, this function compares the rank-value of the aggressors.
  • N.B.: a King is always considered most valuable, regardless of the evaluation-function supplied.

Constructor

listArrayByRank :: IArray a e => [e] -> a Rank e Source #

An array-constructor.