Documentation ¶
Index ¶
- Constants
- Variables
- func CanPlayerCaptureKing(p *Position) (kingInCheck bool)
- func SaveEndGameDb(file string, analysisStr map[string]string) error
- type Analysis
- type Board
- func (b *Board) BlackKing() int
- func (b *Board) DoMove(m *Move) (newBoard *Board)
- func (b *Board) Empty(square int)
- func (b *Board) Picture() string
- func (b *Board) Setup(piece, square int) (noError error)
- func (b *Board) Square(i int) int
- func (b *Board) String() string
- func (b *Board) WhiteKing() int
- type DTM
- type EndGameDb
- type EndGameSave
- type Move
- type Position
- type PositionDb
- type PositionEntry
- type PositionKey
- type Square
Constants ¶
View Source
const ( WHITE = 1 BLACK = -1 )
Players
View Source
const ( //FILES the files of a board FILES = "abcdefgh" //SQUARES the number of quares SQUARES = 64 )
View Source
const ( Empty = 0 WhiteKing = WHITE * kingValue WhiteQueen = WHITE * queenValue WhiteRock = WHITE * rockValue WhiteBishop = WHITE * bishopValue WhiteKnight = WHITE * knightValue WhitePawn = WHITE * pawnValue BlackKing = BLACK * kingValue BlackQueen = BLACK * queenValue BlackRock = BLACK * rockValue BlackBishop = BLACK * bishopValue BlackPawn = BLACK * pawnValue BlackKnight = BLACK * knightValue )
Pieces values
View Source
const ( A1 = 0 B1 = 1 C1 = 2 D1 = 3 E1 = 4 F1 = 5 G1 = 6 H1 = 7 A2 = 8 B2 = 9 C2 = 10 D2 = 11 E2 = 12 F2 = 13 G2 = 14 H2 = 15 A3 = 16 B3 = 17 C3 = 18 D3 = 19 E3 = 20 F3 = 21 G3 = 22 H3 = 23 A4 = 24 B4 = 25 C4 = 26 D4 = 27 E4 = 28 F4 = 29 G4 = 30 H4 = 31 A5 = 32 B5 = 33 C5 = 34 D5 = 35 E5 = 36 F5 = 37 G5 = 38 H5 = 39 A6 = 40 B6 = 41 C6 = 42 D6 = 43 E6 = 44 F6 = 45 G6 = 46 H6 = 47 A7 = 48 B7 = 49 C7 = 50 D7 = 51 E7 = 52 F7 = 53 G7 = 54 H7 = 55 A8 = 56 B8 = 57 C8 = 58 D8 = 59 E8 = 60 F8 = 61 G8 = 62 H8 = 63 )
Board indexes
View Source
const ( North = 8 South = -8 West = -1 East = 1 NorthWest = 7 NorthEast = 9 SouthWest = -9 SouthEast = -7 )
Directions in terms of board index
Variables ¶
View Source
var ( //FirstSquares of rank a to print the board FirstSquares = [...]int{A8, A7, A6, A5, A4, A3, A2, A1} //BoardSquares an array of *Square of the board BoardSquares [SQUARES]*Square )
View Source
var ( Pieces = map[int]string{ WhiteKing: "K", BlackKing: "k", WhiteQueen: "Q", BlackQueen: "q", WhiteRock: "R", BlackRock: "r", WhiteBishop: "B", BlackBishop: "b", WhiteKnight: "N", BlackKnight: "n", WhitePawn: "P", BlackPawn: "p", Empty: " ", } Symbols = map[string]int{ "K": WhiteKing, "k": BlackKing, "Q": WhiteQueen, "q": BlackQueen, "R": WhiteRock, "r": BlackRock, "B": WhiteBishop, "b": BlackBishop, "N": WhiteKnight, "n": BlackKnight, "P": WhitePawn, "p": BlackPawn, " ": Empty, } )
Pieces symbols
View Source
var DEBUG = false
DEBUG set to write cpu.po
View Source
var IN_TEST = false
View Source
var PROFILE = false
PROFILE set to true for log messages
Functions ¶
func CanPlayerCaptureKing ¶
Types ¶
type Analysis ¶
type Analysis struct {
// contains filtered or unexported fields
}
func NewAnalysis ¶
type Board ¶
type Board struct { Squares []int // contains filtered or unexported fields }
Board with an array of field values, representing pieces
type EndGameDb ¶
type EndGameDb struct { Start time.Time Duration time.Duration AnalysisMap map[string]*Analysis AnalysisStr map[string]string }
EndGameDb to query for mate in 1,2, etc.
func LoadEndGameDb ¶
func (*EndGameDb) CreateAnalysisStr ¶
func (db *EndGameDb) CreateAnalysisStr()
func (*EndGameDb) FindMatesIn ¶
type EndGameSave ¶
type Move ¶
Move represents a move on the board
func GenerateMoves ¶
func MoveFromString ¶
MoveFromString parses a string like Ke1e2 to a *Move
type PositionDb ¶
type PositionDb struct {
Positions map[PositionKey]*PositionEntry
}
PositionDb to query for mate in 1,2, etc.
func LoadPositionDb ¶
func LoadPositionDb(file string) (db *PositionDb, err error)
func (*PositionDb) AddPrevPositions ¶
func (db *PositionDb) AddPrevPositions()
func (*PositionDb) FillWithKRKPositions ¶
func (db *PositionDb) FillWithKRKPositions()
func (*PositionDb) FindWhitePosition ¶
func (db *PositionDb) FindWhitePosition(fen string, result *PositionEntry) error
FindWhitePosition serves with rpc
func (*PositionDb) SavePositionDb ¶
func (db *PositionDb) SavePositionDb(file string) error
SaveEndGameDb saves the an end game DB for KRK to file
type PositionEntry ¶
type PositionEntry struct { Position *Position Dtm int PrevPositions map[PositionKey]*Move NextPositions map[PositionKey]*Move }
PositionEntry is an entry in the PositionDb
func NewPositionEntry ¶
func NewPositionEntry(p *Position) *PositionEntry
NewPositionEntry ceates a new *PositionEntry
type PositionKey ¶
type PositionKey string
Source Files ¶
Click to show internal directories.
Click to hide internal directories.