Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc
Moderator: Andres Valverde
by Uri Blass » 11 Nov 2006, 15:35
I wonder if UCI engines can support both options.
The problem is when you are lucky to get exactly the initial position of normal chess in chess960 game.
Is there some difference in the commands that the engine get in that case relative to normal chess?
If there is no difference then it is impossible to support both modes because in chess960 game the engine should write castling under arena as 0-0 and in normal chess it should write castling under arena as e1g1.
In winboard mode there is no problem because
winboard engines can know based on the variant command if they play FRC or normal chess because in normal chess they do not get the variant command.
There is also no problem under shredder gui because the engines can know based on the initial fen if they play chess960 or normal game.
The only problem is with arena UCI mode.
Uri
-
Uri Blass
-
- Posts: 727
- Joined: 09 Oct 2004, 05:59
- Location: Tel-Aviv
by Uri Blass » 11 Nov 2006, 16:03
Looking again at the uci protocol I thought that there may be a solution to this problem.
"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."
Movei simply ignored that command instead of changing a variable to tell it that it should write castling in a different way.
Unfortunately it seems that arena does not send movei UCI_Chess960 so the problem is still not solved
Movei get UCI_Chess960 only when it does not need it to know that it needs to write special notation for chess960(under shredder gui)
As UCI engine under arena movei is confused how to write castling moves so the solution that it choose is a solution that is consistent with normal chess and is king take rook in case that the distance between the king and the rook is not bigger than 1 and king to the target square in other cases.
unfortunately arena does not understand it and consider king take rook as illegal move(I am not sure if it does the same to king to the target square but it is clear that I cannot use king to the target square generally(at least not in case that the distance is 1).
Uri
-
Uri Blass
-
- Posts: 727
- Joined: 09 Oct 2004, 05:59
- Location: Tel-Aviv
by Uri Blass » 11 Nov 2006, 23:55
It seems now that arena expects different strings from uci engines and winboard engines.
arena reject castling moves from movei even when it used the same notation that it is using as winboard engine for c
I saw that hermann wrote castling in the pv as 00 and not 0-0 and maybe arena expect uci engines not to write -
Uri
-
Uri Blass
-
- Posts: 727
- Joined: 09 Oct 2004, 05:59
- Location: Tel-Aviv
by Uri Blass » 12 Nov 2006, 09:35
I solved almost all the problem
Arena except movei as uci engine to print castling as o-o and not as 0-0
I also told movei as uci engine always to print castling as o-o or o-o-o in case that it gets start position that cannot happen in normal chess.
The only problem is in case that the starting position happen in normal chess.
In this case I see no solution and I wonder how hermann handle that problem
Uri
-
Uri Blass
-
- Posts: 727
- Joined: 09 Oct 2004, 05:59
- Location: Tel-Aviv
Return to Programming and Technical Discussions
Who is online
Users browsing this forum: No registered users and 42 guests