Code: Select all
Move format:
------------
The move format is in long algebraic notation.
A nullmove from the Engine to the GUI should be send as 0000.
Code: Select all
"setoption name Nullmove value true\n"
Thanks
Marco
Moderators: hgm, Rebel, chrisw
Code: Select all
Move format:
------------
The move format is in long algebraic notation.
A nullmove from the Engine to the GUI should be send as 0000.
Code: Select all
"setoption name Nullmove value true\n"
Just a wild guess: to enable/disable the use of null move in search.mcostalba wrote:What is this Nullmove option ? And what it stands for ?Code: Select all
"setoption name Nullmove value true\n"
There exists some programs (fx. Fritz 7) which also do null move in PV search. Then the PV could look like "e2e4 0000 d2d4 d7d5". Or if program wants to report the line it's currently examining it can use this syntax.i don't understand when/if an engine should send nullmove to the GUI or when/if a GUI should send nullmove to the engine.
@Marco: you quoted two very different parts of the UCI protocol spec. The first one is about the move string format, the second is from the section that describes the possible ways of defining UCI options in general. In the latter part, "Nullmove" is nothing but an example for the "boolean" type of UCI options, i.e. those you can set to "true" or "false", "yes" or "no", ... But nowhere is stated that "Nullmove" is any kind of a standard UCI option from the viewpoint of the UCI spec. Even though nowadays we might have kind of "de facto standards" for UCI options, in principle these are still defined by engines, not by the protocol.Desperado wrote:Maybe it is just a communication feature, that allows to tell the
gui that an engine doesnt support nullmove in any form.
So the gui will never send a fen with a move-string that contains
a nullmove (i am thinking of analyse mode for example).
Just a guess.
Michael
In this case we send MOVE_NONE that is different from MOVE_NULL.hgm wrote:You should use it in the bestmove command when there is no legal move in the loaded position (e.g. because you are mated).
Nowhere in UCI is documented the possibility for the engine to "express refusal" or similar behaviours. Could you please point me to that part in case I've missed ?hgm wrote: In other positions it can be used to resign or claim a 3-fold-rep or 50-move draw (i.e. any situation where you want to express refusal to play a legal move).
This is another undocumented feature. Where is written that a GUI can send a line with "0000" and what a correctly behaving engine is supposed to do upon receiving "0000" ?hgm wrote: A GUI could send it a null move, e.g.
position startpos moves e2e4 e7e5 g1f3 0000 f3e5 d8e7
go infinite
and you don't want it to go haywire in that case
Hi hgm!hgm wrote:You should use it in the bestmove command when there is no legal move in the loaded position (e.g. because you are mated). In other positions itcan be used to resign or claima 3-fold-rep or 50-move draw (i.e. any situation where you want to express refusal to play a legal move).
Where exactly in the specs does it say that?zamar wrote:My understanding of the specs has always been that it's the responsibility of the GUI (or polyglot) to detect mates, 3-fold reps and 50-move draw. So the behaviour of the engine is undefined in such cases.