Checkmate In Zero

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 9:34 pm
Location: Scotland

Re: Checkmate In Zero

Post by Christopher Conkie »

hgm wrote:
lucasart wrote:If the position is invalid (several kings on the board, for example) you should assume the behavior of a chess engine to be undefined:
Actually that is only true for UCI engines. WB protocol prescribes that the engine should generate an error message when presented with positions it cannot handle, and reject any input move as 'Illegal move' when such a rejected position is not yet replaced by a new one.
Actually it is undefined and only true if you are partizan to one particular protocol.

As we develop our engines it is only natural that we should make them consistent in their understanding of the rules.

Why should everyone be beholden to the "Islam" of those like you that support Winboard? Winboard is old. Version 2 of Winboard is OLD. Why can't people do as they wish? Must everyone wait on the old fart society to allow them to make an engine the way they want?

Obviously Winboard has its merits but so do other protocols like UCI.

Anyway...... I just wanted to say to you that the interpretation of any protocol by any engine is useful.

1. It let's us know if they are off your Christmas card list Santa.
2. It let's us know that they think they can choose by themselves.

And.......

3. That they are more interested in chess......than........(how can I put it so you will understand)........protocol.......

;)

Chris
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Checkmate In Zero

Post by lucasart »

Christopher Conkie wrote:
zullil wrote:
lucasart wrote:
Christopher Conkie wrote:[D]8/8/8/3Kk3/3kK3/8/8/8 w - - 0 1

Or......

[D]8/8/2K2k2/8/8/2k2K2/8/8 w - - 0 1

You may say that these positions are not chess......but we could say the same about some programmers.

:)

Chris
And what's your point ? That these illegal positions crash chess engines ?

If the position is invalid (several kings on the board, for example) you should assume the behavior of a chess engine to be undefined:
- It can reject it
- crash
- spit out any kind of non sense

shit in -> shit out...
I believe Chris is suggesting that, by studying how an engine responds to such "crazy" positions, one may attempt to determine its origin(s).
Thank you Louis, that is exactly what I meant and you described it better that anyone here, where I might add we are supposed to have the crème de la crème of chess intelligence.

:)

Chris
Oh, no, that so reminds of of the dark ages of the clone wars, that raged on (this forum and others) not so long ago... Typically people who are *not* programmers, and have the *least* knowledge about it, were the most verbose about such subjects. Ands typically (since they don't know how to read code let alone assembly decompile), these people make claims based on what they "see", which is only the protocol communication.

The protocol communication code is the most simple and trivial part of a chess engine. I can very easily make a Stockfish clone, and obfuscate its output, or the way it reads a FEN position (the Position::set() function of SF is a *minuscule* and *trivial* piece of code compared to SF itself).

You cannot draw any sensible conclusions from looking at engine output. Let's take the reversed example: suppose someone write a genuinely original engine, borrowing no code to anyone. The first thing you do it code all sort of things, and debug tons of stuff, and the last piece (cherry on the cake) is the protocol hanldling code. Let's assume the programmer doesn't know the protocol communication, so he'll have a look at a source code (Fruit, SF, Ippo, you name it), and immitate what is don ehtere, in order to be compatible with the protocol.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.