Page 1 of 1

UCI question

PostPosted: 12 Jul 2005, 19:09
by Guest
I've just started programming my own engine, and am trying to sort out the UCI protocol. After a lot of reading around I realised that I can't offer draws or resign in UCI - I wish it would make this clear in the protocol. Anyway:

After a "ponderhit" is a "go" always sent as well ? Otherwise how would I know what the time controls are ?

I have been looking for details of how to convert my program to a *.eng for Fritz, but references to this kind of information seem to have been removed from the chessbase site, is this now revoked ? I see they have several engines on their website, have they recompiled these themselves ?

TIA

Re: UCI question

PostPosted: 12 Jul 2005, 21:02
by Anonymous
>After a "ponderhit" is a "go" always sent as well ? Otherwise how would I know what the time controls are ?

No, go will not be sent after ponderhit. You have the times from the last go. When you receive ponderhit, your time will be the same as from the last go. Opponents time on the clock will be the opponent time you received last minus the time between last go and ponderhit. You have to track this yourself. This is indeed a difference to the WB protocol, where you get current times on the clock after every move.

Also, my reply is totally from memory - I hope I have not mixed things up.

>I have been looking for details of how to convert my program to a *.eng for Fritz, but references to this kind of information seem to have been removed from the chessbase site, is this now revoked ? I see they have several engines on their website, have they recompiled these themselves ?

You cannot create a classical CB type .eng engine yourself, without collobarating with CB. But with UCI, there is hardly the need to have this.

Regards, and good luck,
Dieter

Re: UCI question

PostPosted: 13 Jul 2005, 08:53
by Fabien Letouzey
Hi Dieter,

Dieter B?r?ner wrote:This is indeed a difference to the WB protocol, where you get current times on the clock after every move.


Are you sure about this?

The #1 problem I've got with PolyGlot is that XBoard only sends clock info just before the engine turn, not after its move which is what I would need for UCI pondering.

Is WinBoard different in that respect?

Fabien.

Re: UCI question

PostPosted: 13 Jul 2005, 22:53
by Guest
This seems reasonable upon first reading, but I'm still a little confused. Suppose there are a number of movestogo before the next time control and you keep getting ponderhits, what happens when you reach the time control with a ponderhit ? Hopefully my engine will be able to play a semi reasonable game before long and I'll be able to test it out although already I see that the fritz interface sends a strange mix of go commands that seem almost random, for example demanding a depth of 3 on one reply and 5 the next and then giving time controls the next, all within a 'friend' game.

Re: UCI question

PostPosted: 14 Jul 2005, 06:48
by Anonymous
Fabien, you are of course right. No idea, what I thought when I wrote this. Probably I wanted to write, that you get the clock with (not after) every move.

Caesum, perhaps you should show a concrete example of the "strange mix of go commands ...".

Regards,
Dieter

Re: UCI question

PostPosted: 14 Jul 2005, 08:38
by Fabien Letouzey
Hi,

Caesum wrote:This seems reasonable upon first reading, but I'm still a little confused. Suppose there are a number of movestogo before the next time control and you keep getting ponderhits, what happens when you reach the time control with a ponderhit ?


I don't understand your question. You can never receive two "ponderhit"s in a row. Furthermore all time info was sent with the previous "go ponder", including "movestogo".

Fabien.