CookieCat Monday release schedule
Posted: Mon Dec 19, 2011 11:14 pm
CookieCat has gotten some fixes and some additions. The most notable addition is the tablebase initialization and class probe code. However, the tablebase file probe code is not there yet, so I'll wait until next Monday 2011.12.26 for a source release. With some luck, I might even get the PGN parser and the opening book ready, too.
Some new code:
Some new code:
Code: Select all
type
{ Tablebase descriptor record; one per tablebase class }
tbdrtype =
record
tbc: tbctype; { Tablebase class }
osmsigvec: osmsigvectype; { One side material signature vector }
msig: msigtype; { Material signature key; not color reversed }
mancount: Integer; { Man count (total) }
mcvec: array [colorrtype] of Integer; { Man counts indexed by color }
fold: foldtype; { Folding mode }
foldslot: tbslottype; { Slot to be folded }
name: String; { Class name }
fnvec: array [colorrtype] of String { TB filenames indexed by color on the move }
end;
{ Tablebase material signature mapping descriptor record; two per tablebase class }
tbmsmtype =
record
tbc: tbctype; { Tablebase class }
msig: msigtype; { Material signature key; may be color reversed }
isrev: Boolean { Reversed sense flag }
end;
{ Tablebase file }
tbftype = file of ui8type;
tbfptrtype = ^tbftype;
{ Tablebase file record }
tbfrtype =
record
isbroken: Boolean; { True if open failed }
name: String; { File name }
tbfptr: tbfptrtype { Pointer to file }
end;
{ Tablebase file record vector }
tbfrvectype = array [tbctype, colorrtype] of tbfrtype;
tbfrvecptrtype = ^tbfrvectype;
function PosProbeTablebaseSignatureVector(var pos: postype): tbcmsxtype;
var
myresult: tbcmsxtype;
b0, b1, probe: si32type;
begin
myresult := tbcmsnil;
b0 := 0;
b1 := tbcmsmax;
repeat
probe := (b0 + b1) div 2;
if pos.msig = tbmsmvec[probe].msig then
myresult := tbcmstype(probe)
else
if pos.msig < tbmsmvec[probe].msig then
b1 := probe - 1
else
b0 := probe + 1
until (myresult <> tbcmsnil) or (b0 > b1);
PosProbeTablebaseSignatureVector := myresult
end; { PosProbeTablebaseSignatureVector }