Documentation ¶
Index ¶
- func HasLegalMove(board *Board) bool
- func IsLegalMove(board *Board, move *Move) bool
- func UpdateBoardCounters(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
- func UpdateBoardEnPassantSquare(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
- func UpdateBoardResult(lastBoard *Board, boardBuilder *BoardBuilder, repetitions uint8)
- func UpdateCastleRights(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
- func UpdatePiecesFromMove(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
- func UpdateRepetitionsByFENMap(lastBoard *Board, boardBuilder *BoardBuilder, move *Move) uint8
- type Board
- func (board *Board) ComputeKingPositions() (*Square, *Square)
- func (board *Board) ComputeMaterialCount() *MaterialCount
- func (board *Board) GetKingSquare(isWhiteKing bool) *Square
- func (board *Board) GetPieceOnSquare(square *Square) Piece
- func (board *Board) HasLegalNextMove() bool
- func (board *Board) IsCheckmate() bool
- func (board *Board) IsForcedDrawByMaterial() bool
- func (board *Board) IsInitBoard() bool
- func (board *Board) String() string
- func (board *Board) ToFEN() string
- func (board *Board) ToMiniFEN() string
- type BoardBuilder
- func (bb *BoardBuilder) Build() *Board
- func (bb *BoardBuilder) FromBoard(board *Board) *BoardBuilder
- func (bb *BoardBuilder) WithCanBlackCastleKingside(canBlackCastleKingside bool) *BoardBuilder
- func (bb *BoardBuilder) WithCanBlackCastleQueenside(canBlackCastleQueenside bool) *BoardBuilder
- func (bb *BoardBuilder) WithCanWhiteCastleKingside(canWhiteCastleKingside bool) *BoardBuilder
- func (bb *BoardBuilder) WithCanWhiteCastleQueenside(canWhiteCastleQueenside bool) *BoardBuilder
- func (bb *BoardBuilder) WithEnPassantSquare(enPassantSquare *Square) *BoardBuilder
- func (bb *BoardBuilder) WithFullMoveCount(fullMoveCount uint16) *BoardBuilder
- func (bb *BoardBuilder) WithHalfMoveClockCount(halfMoveClockCount uint8) *BoardBuilder
- func (bb *BoardBuilder) WithIsWhiteTurn(isWhiteTurn bool) *BoardBuilder
- func (bb *BoardBuilder) WithMiniFENCount(miniFEN string, count uint8) *BoardBuilder
- func (bb *BoardBuilder) WithPiece(piece Piece, square *Square) *BoardBuilder
- func (bb *BoardBuilder) WithPieces(pieces [8][8]Piece) *BoardBuilder
- func (bb *BoardBuilder) WithRepetitionsByMiniFEN(repetitionsByMiniFEN map[string]uint8) *BoardBuilder
- func (bb *BoardBuilder) WithResult(result BoardResult) *BoardBuilder
- type BoardResult
- type MaterialCount
- type MaterialCountBuilder
- func (mcb *MaterialCountBuilder) Build() *MaterialCount
- func (mcb *MaterialCountBuilder) WithMaterialCount(otherMaterialCount *MaterialCount) *MaterialCountBuilder
- func (mcb *MaterialCountBuilder) WithPiece(piece Piece, square *Square) *MaterialCountBuilder
- func (mcb *MaterialCountBuilder) WithoutPiece(piece Piece, square *Square) *MaterialCountBuilder
- type Move
- func GetLegalMoves(board *Board) ([]*Move, error)
- func GetLegalMovesForBishop(board *Board, square *Square) ([]*Move, error)
- func GetLegalMovesForKing(board *Board) []*Move
- func GetLegalMovesForKnight(board *Board, square *Square) ([]*Move, error)
- func GetLegalMovesForPawn(board *Board, square *Square) ([]*Move, error)
- func GetLegalMovesForQueen(board *Board, square *Square) ([]*Move, error)
- func GetLegalMovesForRook(board *Board, square *Square) ([]*Move, error)
- func GetLegalMovesFromOrigin(board *Board, square *Square) ([]*Move, error)
- func MoveFromAlgebraic(algMove string, priorBoard *Board) (*Move, error)
- func MoveFromLongAlgebraic(algMove string, priorBoard *Board) (*Move, error)
- type Piece
- type Square
- func (s *Square) Copy() *Square
- func (s *Square) Equal(other *Square) bool
- func (s *Square) EqualTo(other *Square) booldeprecated
- func (s *Square) IsDarkSquare() bool
- func (s *Square) IsLightSquare() bool
- func (s *Square) IsValidBoardSquare() bool
- func (s *Square) String() string
- func (s *Square) ToAlgebraicCoords() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasLegalMove ¶
func IsLegalMove ¶
func UpdateBoardCounters ¶
func UpdateBoardCounters(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
func UpdateBoardEnPassantSquare ¶
func UpdateBoardEnPassantSquare(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
func UpdateBoardResult ¶
func UpdateBoardResult(lastBoard *Board, boardBuilder *BoardBuilder, repetitions uint8)
func UpdateCastleRights ¶
func UpdateCastleRights(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
func UpdatePiecesFromMove ¶
func UpdatePiecesFromMove(lastBoard *Board, boardBuilder *BoardBuilder, move *Move)
func UpdateRepetitionsByFENMap ¶
func UpdateRepetitionsByFENMap(lastBoard *Board, boardBuilder *BoardBuilder, move *Move) uint8
Types ¶
type Board ¶
type Board struct { Pieces [8][8]Piece `json:"pieces"` OptEnPassantSquare *Square `json:"enPassantSquare"` IsWhiteTurn bool `json:"isWhiteTurn"` CanWhiteCastleQueenside bool `json:"canWhiteCastleQueenside"` CanWhiteCastleKingside bool `json:"canWhiteCastleKingside"` CanBlackCastleQueenside bool `json:"canBlackCastleQueenside"` CanBlackCastleKingside bool `json:"canBlackCastleKingside"` HalfMoveClockCount uint8 `json:"halfMoveClockCount"` FullMoveCount uint16 `json:"fullMoveCount"` RepetitionsByMiniFEN map[string]uint8 `json:"repetitionsByMiniFEN"` Result BoardResult `json:"result"` // contains filtered or unexported fields }
func BoardFromFEN ¶
func GetBoardFromMove ¶
func GetInitBoard ¶
func GetInitBoard() *Board
func NewBoard ¶
func NewBoard(pieces *[8][8]Piece, enPassantSquare *Square, isWhiteTurn bool, canWhiteCastleKingside bool, canWhiteCastleQueenside bool, canBlackCastleKingside bool, canBlackCastleQueenside bool, halfMoveClockCount uint8, fullMoveCount uint16, repetitionsByMiniFEN map[string]uint8, result BoardResult, ) *Board
func (*Board) ComputeKingPositions ¶
func (*Board) ComputeMaterialCount ¶
func (board *Board) ComputeMaterialCount() *MaterialCount
func (*Board) GetKingSquare ¶
func (*Board) GetPieceOnSquare ¶
func (*Board) HasLegalNextMove ¶
func (*Board) IsCheckmate ¶
func (*Board) IsForcedDrawByMaterial ¶
func (*Board) IsInitBoard ¶
type BoardBuilder ¶
type BoardBuilder struct {
// contains filtered or unexported fields
}
func NewBoardBuilder ¶
func NewBoardBuilder() *BoardBuilder
func (*BoardBuilder) Build ¶
func (bb *BoardBuilder) Build() *Board
func (*BoardBuilder) FromBoard ¶
func (bb *BoardBuilder) FromBoard(board *Board) *BoardBuilder
func (*BoardBuilder) WithCanBlackCastleKingside ¶
func (bb *BoardBuilder) WithCanBlackCastleKingside(canBlackCastleKingside bool) *BoardBuilder
func (*BoardBuilder) WithCanBlackCastleQueenside ¶
func (bb *BoardBuilder) WithCanBlackCastleQueenside(canBlackCastleQueenside bool) *BoardBuilder
func (*BoardBuilder) WithCanWhiteCastleKingside ¶
func (bb *BoardBuilder) WithCanWhiteCastleKingside(canWhiteCastleKingside bool) *BoardBuilder
func (*BoardBuilder) WithCanWhiteCastleQueenside ¶
func (bb *BoardBuilder) WithCanWhiteCastleQueenside(canWhiteCastleQueenside bool) *BoardBuilder
func (*BoardBuilder) WithEnPassantSquare ¶
func (bb *BoardBuilder) WithEnPassantSquare(enPassantSquare *Square) *BoardBuilder
func (*BoardBuilder) WithFullMoveCount ¶
func (bb *BoardBuilder) WithFullMoveCount(fullMoveCount uint16) *BoardBuilder
func (*BoardBuilder) WithHalfMoveClockCount ¶
func (bb *BoardBuilder) WithHalfMoveClockCount(halfMoveClockCount uint8) *BoardBuilder
func (*BoardBuilder) WithIsWhiteTurn ¶
func (bb *BoardBuilder) WithIsWhiteTurn(isWhiteTurn bool) *BoardBuilder
func (*BoardBuilder) WithMiniFENCount ¶
func (bb *BoardBuilder) WithMiniFENCount(miniFEN string, count uint8) *BoardBuilder
func (*BoardBuilder) WithPiece ¶
func (bb *BoardBuilder) WithPiece(piece Piece, square *Square) *BoardBuilder
func (*BoardBuilder) WithPieces ¶
func (bb *BoardBuilder) WithPieces(pieces [8][8]Piece) *BoardBuilder
func (*BoardBuilder) WithRepetitionsByMiniFEN ¶
func (bb *BoardBuilder) WithRepetitionsByMiniFEN(repetitionsByMiniFEN map[string]uint8) *BoardBuilder
func (*BoardBuilder) WithResult ¶
func (bb *BoardBuilder) WithResult(result BoardResult) *BoardBuilder
type BoardResult ¶
type BoardResult string
const ( BOARD_RESULT_IN_PROGRESS BoardResult = "in_progress" BOARD_RESULT_WHITE_WINS_BY_CHECKMATE BoardResult = "white_wins_by_checkmate" BOARD_RESULT_BLACK_WINS_BY_CHECKMATE BoardResult = "black_wins_by_checkmate" BOARD_RESULT_DRAW_BY_STALEMATE BoardResult = "draw_by_stalemate" BOARD_RESULT_DRAW_BY_INSUFFICIENT_MATERIAL BoardResult = "draw_by_insufficient_material" BOARD_RESULT_DRAW_BY_THREEFOLD_REPETITION BoardResult = "draw_by_threefold_repetition" BOARD_RESULT_DRAW_BY_FIFTY_MOVE_RULE BoardResult = "draw_by_fifty_move_rule" )
type MaterialCount ¶
type MaterialCount struct { WhitePawnCount uint8 WhiteKnightCount uint8 WhiteLightBishopCount uint8 WhiteDarkBishopCount uint8 WhiteRookCount uint8 WhiteQueenCount uint8 BlackPawnCount uint8 BlackKnightCount uint8 BlackLightBishopCount uint8 BlackDarkBishopCount uint8 BlackRookCount uint8 BlackQueenCount uint8 }
type MaterialCountBuilder ¶
type MaterialCountBuilder struct {
// contains filtered or unexported fields
}
func NewMaterialCountBuilder ¶
func NewMaterialCountBuilder() *MaterialCountBuilder
func (*MaterialCountBuilder) Build ¶
func (mcb *MaterialCountBuilder) Build() *MaterialCount
func (*MaterialCountBuilder) WithMaterialCount ¶
func (mcb *MaterialCountBuilder) WithMaterialCount(otherMaterialCount *MaterialCount) *MaterialCountBuilder
func (*MaterialCountBuilder) WithPiece ¶
func (mcb *MaterialCountBuilder) WithPiece(piece Piece, square *Square) *MaterialCountBuilder
func (*MaterialCountBuilder) WithoutPiece ¶
func (mcb *MaterialCountBuilder) WithoutPiece(piece Piece, square *Square) *MaterialCountBuilder
type Move ¶
type Move struct { Piece Piece `json:"piece"` StartSquare *Square `json:"startSquare"` EndSquare *Square `json:"endSquare"` CapturedPiece Piece `json:"capturedPiece"` KingCheckingSquares []*Square `json:"kingCheckingSquares"` PawnUpgradedTo Piece `json:"pawnUpgradedTo"` }
func GetLegalMoves ¶
func GetLegalMovesForBishop ¶
func GetLegalMovesForKing ¶
func GetLegalMovesForKnight ¶
func GetLegalMovesForPawn ¶
func GetLegalMovesForQueen ¶
func GetLegalMovesForRook ¶
func GetLegalMovesFromOrigin ¶
func MoveFromAlgebraic ¶ added in v0.0.1
func MoveFromLongAlgebraic ¶ added in v0.0.1
func (*Move) DoesAllowEnPassant ¶
func (*Move) ToAlgebraic ¶
func (*Move) ToLongAlgebraic ¶ added in v0.0.1
ToLongAlgebraic adheres to the UCI "long algebraic notation", which differs from the standard "long algebraic notation". The UCI version is restricted to the start/end squares and a piece delimiter for upgrading pawns.
type Square ¶
func GetCheckingSquares ¶
func (*Square) IsDarkSquare ¶
func (*Square) IsLightSquare ¶
func (*Square) IsValidBoardSquare ¶
func (*Square) ToAlgebraicCoords ¶
Click to show internal directories.
Click to hide internal directories.