Page 4 of 4

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Thu Nov 14, 2019 5:19 pm
by D Sceviour
AndrewGrant wrote: Sat Jun 22, 2019 4:34 pm In this process I think I came across the answer to the question "Why does Stockfish encode castle moves as King captures Rook".
One reason for encoding KxR castling may be that it follows the polyglot opening book format for castling. Other than that, there may be no advantage to use a KxR format for the internal engine design. Locating the rooks is not a problem if done at the root.

It is interesting that polyglot foresaw the possibility of random castling. Has anyone started a polyglot book collection for FRC/960?

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Sun Dec 01, 2019 6:48 pm
by xr_a_y
I'm struggling with FRC also in Minic this week-end ...

I've just discovered that cutechess in UCI mode can send "moves" command with both O-O style notation and "king takes rook" notation (f8d8 in this case).

Code: Select all

Received command : position fen bbnrnkqr/pppppppp/8/8/8/8/PPPPPPPP/BBNRNKQR w HDhd - 0 1 moves c2c4 f7f6 b2b3 c7c5 b1e4 e8c7 c1d3 d7d5 c4d5 b7b6 f2f3 c7d5 g1f2 c8d6 O-O d6e4 f3e4 d5c7 a1e5 g8e6 f2g3 f8d8 
Here Minic was playing white, versus komodo10, so I suppose that Komodo sent the castling as f8d8 and cutechess does not convert it to more standard castling ...

Of course I can handle that in Minic but does someone already had this issue with cutechess ?

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Sun Dec 01, 2019 11:57 pm
by MikeB
xr_a_y wrote: Sun Dec 01, 2019 6:48 pm I'm struggling with FRC also in Minic this week-end ...

I've just discovered that cutechess in UCI mode can send "moves" command with both O-O style notation and "king takes rook" notation (f8d8 in this case).

Code: Select all

Received command : position fen bbnrnkqr/pppppppp/8/8/8/8/PPPPPPPP/BBNRNKQR w HDhd - 0 1 moves c2c4 f7f6 b2b3 c7c5 b1e4 e8c7 c1d3 d7d5 c4d5 b7b6 f2f3 c7d5 g1f2 c8d6 O-O d6e4 f3e4 d5c7 a1e5 g8e6 f2g3 f8d8 
Here Minic was playing white, versus komodo10, so I suppose that Komodo sent the castling as f8d8 and cutechess does not convert it to more standard castling ...

Of course I can handle that in Minic but does someone already had this issue with cutechess ?
The UCI standard for castling in FRC is "king takes rook" - which is what Komodo sent. I'm surprised cutechess will have an issue with that. Maybe there is a newer version or chess960 option?

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Mon Dec 02, 2019 6:44 am
by xr_a_y
MikeB wrote: Sun Dec 01, 2019 11:57 pm
xr_a_y wrote: Sun Dec 01, 2019 6:48 pm I'm struggling with FRC also in Minic this week-end ...

I've just discovered that cutechess in UCI mode can send "moves" command with both O-O style notation and "king takes rook" notation (f8d8 in this case).

Code: Select all

Received command : position fen bbnrnkqr/pppppppp/8/8/8/8/PPPPPPPP/BBNRNKQR w HDhd - 0 1 moves c2c4 f7f6 b2b3 c7c5 b1e4 e8c7 c1d3 d7d5 c4d5 b7b6 f2f3 c7d5 g1f2 c8d6 O-O d6e4 f3e4 d5c7 a1e5 g8e6 f2g3 f8d8 
Here Minic was playing white, versus komodo10, so I suppose that Komodo sent the castling as f8d8 and cutechess does not convert it to more standard castling ...

Of course I can handle that in Minic but does someone already had this issue with cutechess ?
The UCI standard for castling in FRC is "king takes rook" - which is what Komodo sent. I'm surprised cutechess will have an issue with that. Maybe there is a newer version or chess960 option?
Ok, thanks, so I will update Minic so it sends king takes rook also.

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Mon Dec 02, 2019 8:53 pm
by MikeB
xr_a_y wrote: Mon Dec 02, 2019 6:44 am
MikeB wrote: Sun Dec 01, 2019 11:57 pm
xr_a_y wrote: Sun Dec 01, 2019 6:48 pm I'm struggling with FRC also in Minic this week-end ...

I've just discovered that cutechess in UCI mode can send "moves" command with both O-O style notation and "king takes rook" notation (f8d8 in this case).

Code: Select all

Received command : position fen bbnrnkqr/pppppppp/8/8/8/8/PPPPPPPP/BBNRNKQR w HDhd - 0 1 moves c2c4 f7f6 b2b3 c7c5 b1e4 e8c7 c1d3 d7d5 c4d5 b7b6 f2f3 c7d5 g1f2 c8d6 O-O d6e4 f3e4 d5c7 a1e5 g8e6 f2g3 f8d8 
Here Minic was playing white, versus komodo10, so I suppose that Komodo sent the castling as f8d8 and cutechess does not convert it to more standard castling ...

Of course I can handle that in Minic but does someone already had this issue with cutechess ?
The UCI standard for castling in FRC is "king takes rook" - which is what Komodo sent. I'm surprised cutechess will have an issue with that. Maybe there is a newer version or chess960 option?
Ok, thanks, so I will update Minic so it sends king takes rook also.
It appears that cutechess has a flag for FRC.

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Sat Jan 08, 2022 11:24 am
by op12no2
Hi, how does an engine know it needs to play FRC, is there a UCI extension or is it detection of a non-standard position after ucinewgame? UCI context in this case.

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Sat Jan 08, 2022 1:06 pm
by tcusr
op12no2 wrote: Sat Jan 08, 2022 11:24 am Hi, how does an engine know it needs to play FRC, is there a UCI extension or is it detection of a non-standard position after ucinewgame? UCI context in this case.
Chess960
========

UCI could easily be extended to support Chess960 (also known as Fischer Random Chess).

The engine has to tell the GUI that it is capable of playing Chess960 and the GUI has to tell
the engine that is should play according to the Chess960 rules.
This is done by the special engine option UCI_Chess960. If the engine knows about Chess960
it should send the command 'option name UCI_Chess960 type check default false'
to the GUI at program startup.
Whenever a Chess960 game is played, the GUI should set this engine option to 'true'.

Re: FRC / Chess960 -- Some Lessons I Learned

Posted: Sat Jan 08, 2022 1:47 pm
by op12no2
tcusr wrote: Sat Jan 08, 2022 1:06 pm
op12no2 wrote: Sat Jan 08, 2022 11:24 am Hi, how does an engine know it needs to play FRC, is there a UCI extension or is it detection of a non-standard position after ucinewgame? UCI context in this case.
Chess960
========

UCI could easily be extended to support Chess960 (also known as Fischer Random Chess).

The engine has to tell the GUI that it is capable of playing Chess960 and the GUI has to tell
the engine that is should play according to the Chess960 rules.
This is done by the special engine option UCI_Chess960. If the engine knows about Chess960
it should send the command 'option name UCI_Chess960 type check default false'
to the GUI at program startup.
Whenever a Chess960 game is played, the GUI should set this engine option to 'true'.
OK thanks. WRT "could easily" I assume that's what happened and I can implement as above.