Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: EGTBs

Author: James Swafford

Date: 08:58:02 09/04/99

Go up one level in this thread


Are you sure you're ordering the squares the right way?

For example, in my engine, A8=0, H8=7 .... H1 = 63.
In Eugene's code, H1 = 0 ... A8 = 63, so I had to do
an inversion before placing squares in the list.

Before I caught this, my program was screwing up simple
three man mates.  Talk about frustrating. :-)

--
James


On September 04, 1999 at 06:47:17, Frank Phillips wrote:

>On September 03, 1999 at 16:07:57, James Robertson wrote:
>
>>On September 03, 1999 at 08:03:46, frank phillips wrote:
>>
>>>I thought I had understood how to implement Eugene's EGTBs, but may have been
>>>overly optimistic.
>>>
>>>The databases are registered and return a number which seem to vary consistently
>>>according to my perception of how many moves to mate in simple KRRk endings, but
>>>in actual play against GNUChess in a KNBk ending the pieces just dance around
>>>until a draw by 3 rep.  So I must have messed up the conversation to my programs
>>>mate scoring.
>>>
>>>The database returns numbers up to 127, -126. Are these ply or moves?  Is the
>>>score from the perspective of the side to move - whoever has the most pieces?
>>>
>>>Apologies for the simple questions but I could not find the answers in the
>>>documentation.
>>>
>>>Frank
>>
>>You're not alone in having problems with the mate conversions; I had a heck of a
>>time trying to convert the scores to my mate value. Eventually I succeeded and
>>the pieces still danced around until I fixed several bugs in my search.... it is
>>possible that is where your problem is.
>>
>>James
>
>You may well be correct, James  Something is certainly not right and it could be
>the search.  But I also noticed that when I turned on the DEBUG I get asset
>errors as in
>
>// If we know TB size, it's better for offset be smaller
>assert (!FRegistered (iTb, side) || indOffset < ptbd->m_rgcbLength[side]);
>
>from tbindex.cpp (line 3840) – the original one I think, not the one now on
>Bob’s site.
>
>I suspect that I do not know enough about C, C++, MSVC, endgame tablebases and
>have even lost the ability to follow simple instructions (those Eugene included
>as probe.txt with his source code) and should give up.  But before I do, If
>anyone can take the time to tell how you actually integrated the code into your
>program, I would be grateful :-)
>
>To begin with, I copied Bob’s probe.c code (and his macro VInitSqCtr(rgCtr,
>rgSquares, piece, bitboard)), took out the #defines except for XX, piece, square
>and so forth, did #include tbindex.cpp and inserted that into my program in
>MSVC++5, which identified tbindex.cpp and tbindex.h as external dependencies.
>The code compiled and seemed to register the databases which returned plausible
>values.  Of course, I also set the tb path and cache.  However, in use, KNBk
>endings against GNU made no progress, ending in draws by 3rep (which could be my
>search, but it manages without the egtbs); and with DEGUB on I get the above
>assert error.
>
>So I started again, this time with the version of tbgen.zip from Bob’s site.
>This is different and does not have tdindex.h.  When I try to compile it tells
>me to define SqFirst() and so on.  Surely it cannot be this difficult – Eugene
>did all the hard work.
>
>Dazed and confused.
>
>Frank



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.