chessIO-0.1.0.0: Basic chess move generation and UCI client library

Copyright(c) Mario Lang 2019
LicenseBSD3
Maintainermlang@blind.guru
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Game.Chess

Contents

Description

A small collection of data types and functions to represent Chess positions and moves including move generation and parsing from external sources.

This module does deliberately not implement any search or evaluation functionality. It is intended to be used to lay the ground for communicating with other programs or players, hence the package name chessIO.

Synopsis

Chess positions

data Color Source #

Constructors

White 
Black 
Instances
Eq Color Source # 
Instance details

Defined in Game.Chess

Methods

(==) :: Color -> Color -> Bool #

(/=) :: Color -> Color -> Bool #

Show Color Source # 
Instance details

Defined in Game.Chess

Methods

showsPrec :: Int -> Color -> ShowS #

show :: Color -> String #

showList :: [Color] -> ShowS #

data Sq Source #

Constructors

A1 
B1 
C1 
D1 
E1 
F1 
G1 
H1 
A2 
B2 
C2 
D2 
E2 
F2 
G2 
H2 
A3 
B3 
C3 
D3 
E3 
F3 
G3 
H3 
A4 
B4 
C4 
D4 
E4 
F4 
G4 
H4 
A5 
B5 
C5 
D5 
E5 
F5 
G5 
H5 
A6 
B6 
C6 
D6 
E6 
F6 
G6 
H6 
A7 
B7 
C7 
D7 
E7 
F7 
G7 
H7 
A8 
B8 
C8 
D8 
E8 
F8 
G8 
H8 
Instances
Bounded Sq Source # 
Instance details

Defined in Game.Chess

Methods

minBound :: Sq #

maxBound :: Sq #

Enum Sq Source # 
Instance details

Defined in Game.Chess

Methods

succ :: Sq -> Sq #

pred :: Sq -> Sq #

toEnum :: Int -> Sq #

fromEnum :: Sq -> Int #

enumFrom :: Sq -> [Sq] #

enumFromThen :: Sq -> Sq -> [Sq] #

enumFromTo :: Sq -> Sq -> [Sq] #

enumFromThenTo :: Sq -> Sq -> Sq -> [Sq] #

Eq Sq Source # 
Instance details

Defined in Game.Chess

Methods

(==) :: Sq -> Sq -> Bool #

(/=) :: Sq -> Sq -> Bool #

Show Sq Source # 
Instance details

Defined in Game.Chess

Methods

showsPrec :: Int -> Sq -> ShowS #

show :: Sq -> String #

showList :: [Sq] -> ShowS #

data PieceType Source #

Constructors

Pawn 
Knight 
Bishop 
Rook 
Queen 
King 
Instances
Eq PieceType Source # 
Instance details

Defined in Game.Chess

Show PieceType Source # 
Instance details

Defined in Game.Chess

data Position Source #

Instances
Eq Position Source # 
Instance details

Defined in Game.Chess

startpos :: Position Source #

The starting position as given by the FEN string "rnbqkbnrpppppppp8888PPPPPPPP/RNBQKBNR w KQkq - 0 1".

Converting from/to Forsyth-Edwards-Notation

fromFEN :: String -> Maybe Position Source #

Construct a position from Forsyth-Edwards-Notation.

toFEN :: Position -> String Source #

Convert a position to Forsyth-Edwards-Notation.

Chess moves

data Move Source #

Instances
Eq Move Source # 
Instance details

Defined in Game.Chess

Methods

(==) :: Move -> Move -> Bool #

(/=) :: Move -> Move -> Bool #

Show Move Source # 
Instance details

Defined in Game.Chess

Methods

showsPrec :: Int -> Move -> ShowS #

show :: Move -> String #

showList :: [Move] -> ShowS #

Converting from/to algebraic notation

fromUCI :: Position -> String -> Maybe Move Source #

Parse a move in the format used by the Universal Chess Interface protocol.

toUCI :: Move -> String Source #

Convert a move to the format used by the Universal Chess Interface protocol.

Move generation

moves :: Position -> [Move] Source #

Generate a list of possible moves for the given position.

Executing moves