SCID analysis

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
jshriver
Posts: 1342
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

SCID analysis

Post by jshriver »

Anyone know what or how scid spawns an engine for per move analysis?

Guessing it's using the xboard protocol, if so what commands or settings need to be implemented.

Thanks in advance.
-Josh
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: SCID analysis

Post by jwes »

jshriver wrote:Anyone know what or how scid spawns an engine for per move analysis?

Guessing it's using the xboard protocol, if so what commands or settings need to be implemented.

Thanks in advance.
-Josh
SCID can use both xboard and uci. It creates a file engine1.log (or engine2.log) that shows all the commands sent and received.
stevenaaus
Posts: 608
Joined: Wed Oct 13, 2010 9:44 am
Location: Australia

Re: SCID analysis

Post by stevenaaus »

In addition to three full chess engines packaged with it (Phalanx, Scidlet and Toga II), Scid also has a simple chess engine built-in.

engine.h:

Code: Select all

// The Engine class provides a simple chess position evaluator
// based on negamax with quiescent search and alpha/beta pruning.
// It is used in Scid for doing small quick searches to determine
// which of the possible legal moves to or from a particular square
// to suggest as the best move for faster mouse input.
tkscid.cpp:

Code: Select all

// sc_pos_analyze:
//    Analyzes the current position for the specified number of
//    milliseconds.
//    Returns a two-element list containing the score in centipawns
//    (from the perspective of the side to move) and the best move.
//    If there are no legal moves, the second element is the empty string.
int
sc_pos_analyze (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv)
{
    const char * usage = "Usage&#58; sc_pos analyze &#91;<option> <value> ...&#93;";

    uint searchTime = 1000;   // Default = 1000 milliseconds
    uint hashTableKB = 1024;  // Default&#58; one-megabyte hash table.
    uint pawnTableKB = 32;
    bool postMode = false;
    bool pruning = false;
    uint mindepth = 4; // will not check time until this depth is reached
....
stevenaaus
Posts: 608
Joined: Wed Oct 13, 2010 9:44 am
Location: Australia

Re: SCID analysis

Post by stevenaaus »

Oh...am i answering the wrong question :oops:

It does handle UCI and Xboard protocols of course.
Xboard is handled by analysis.tcl and UCI commands by uci.tcl
Look for sendToEngine commands.
See more recent version for up-to date code, but these links should be ok.