Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Symbolic: ChessLisp (Part I)

Author: Gerd Isenberg

Date: 14:01:49 02/17/04

Go up one level in this thread


On February 17, 2004 at 15:13:02, Steven Edwards wrote:

<snip>
>Chess specific intrinsic functions:
>
>BBAnd BBAtkByColor BBAtkFrSq BBAtkToSq BBIor BBLocByColor BBLocByMan BBMerge
>BBNot BBResetSq BBSetSq BBSqReset? BBSqSet? BBToggleSq BBXor BiDirFromOrd
>BoardFromPos BoardFromPosVal Capturing? CardOfBB Castling? CastlingKS?
>CastlingQS? Check? Checking? Checkmate? Checkmating? ChessType ColorFromOrd
>CstlFromOrd DirFromOrd EnPassant? EvenScore? Execute ExecuteVal ExpandNode
>FENFromPos FENFromPosVal FileFromOrd FirstSqOfBB FlankFromOrd FrManFromMove
>FrSqFromMove Generate GenerateVal GetBoardSq LongSAN LosingScore? MSCFromMove
>MSCFromOrd ManFromOrd ManFromPosSq ManListFromPos ManSqListFromPos MatingScore?
>NullBoardVal NullEnvVal OrdFromChessScalar OtherBiDir OtherColor OtherDir
>OtherFile OtherMan OtherRank OtherSq PassiveCheck? PieceFromOrd PosFromFEN
>PosValFromFEN Promoting? PromotingToBishop? PromotingToKnight? PromotingToQueen?
>PromotingToRook? PutBoardSqMan RankFromOrd Retract RetractVal ShowBoard
>ShowBoardMono ShowNode ShowPos ShowPosMono ShowPosMonoVal ShowPosVal ShowTree
>SqFromOrd SqListFromBB Stalemate? Stalemating? ToManFromMove ToSqFromMove
>TreeFromFEN Underpromoting?


Even i'm not familar with Lisp, i like your high abstraction level
approach with performant chess intrinsics.

The bitboard intrinsics (BBAtkFrSq BBAtkToSq) imply a rotated bitboard
implementation, i guess. Or do you hide the bitboard implementation at all?
Do you consider setwise attack generation with Kogge Stone Fill algorithm?

For performance reasons i use node related memory for eval and (pre-)movegen
purposes with limited validity until expansion, shared by all nodes. They got
initialized shortly after a node is entered but not restored in unmake.
How does your Lisp approach handles such node state related validity (if any)
during search?

Thanks,
Gerd

>
>Chess types:
>
>    BB,    // Val
>    BiDir, // Val Enum
>    Board, // Ref
>    Color, // Val Enum
>    Cstl,  // Val Enum
>    Dir,   // Val Enum
>    Env,   // Ref PList
>    File,  // Val Enum
>    Flank, // Val Enum
>    Hash,  // Val
>    MSC,   // Val Enum
>    Man,   // Val Enum
>    Move,  // Val PList
>    Node,  // Ref PList
>    Piece, // Val Enum
>    Pos,   // Ref PList
>    Rank,  // Val Enum
>    Score, // Val
>    Sq,    // Val Enum
>    Tree   // Ref PList
>
>Move property list items:
>
>    FrMan,
>    FrSq,
>    IsChecking,
>    IsCheckmating,
>    IsStalemating,
>    MSC,
>    Ord,
>    SAN,
>    ToMan,
>    ToSq
>
>Position property list items:
>
>    ActiveColor,
>    ActiveMaterial,
>    Cstl,
>    EnPassantSq,
>    EnvValStack,
>    Evaluation,
>    HalfMoveClock,
>    IsCheckmate,
>    IsStalemate,
>    MainHash,
>    Material,
>    MoveNumber,
>    MoveValStack,
>    Ord,
>    PassiveColor,
>    PassiveMaterial,
>    PawnHash
>
>Node property list items:
>
>    Alpha,
>    Beta,
>    BookExpectation,
>    CandidateNode,
>    DescendentCount,
>    ExpansionMerit,
>    IsBook,
>    IsCandidate,
>    IsExpanded,
>    IsRoot,
>    IsTablebase,
>    Moves,
>    Ord,
>    ParentNode,
>    Ply,
>    Position,
>    PriorMove,
>    RCV,
>    RootNode,
>    Score,
>    SubNodes,
>    TablebaseScore,
>    Tree
>
>Tree property list items:
>
>    LeafNodes,
>    Ord,
>    RootNode
>
>(Much more to come.)



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.