I'll try it out to see if I can add it into my Amateur Series.
Topple
Moderators: hgm, Rebel, chrisw
-
- Posts: 41511
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
-
- Posts: 182
- Joined: Sun Jun 12, 2016 5:44 pm
- Location: London
- Full name: Vincent
Re: Topple
Topple v0.1.1 has been released, fixing a bug where promotions to A1 would be interpreted as en-passant, corrupting the board representation. It also contains minor improvements to search and evaluation: https://github.com/konsolas/ToppleChess/releases
PS: I really appreciate everyone who has offered to help test Topple
PS: I really appreciate everyone who has offered to help test Topple
-
- Posts: 182
- Joined: Sun Jun 12, 2016 5:44 pm
- Location: London
- Full name: Vincent
Re: Topple
Oops, should be fixed now.SzG wrote: ↑Wed Jun 27, 2018 2:07 pmExe not renamed, it says it's v0.1.0.konsolas wrote: ↑Wed Jun 27, 2018 1:12 pm Topple v0.1.1 has been released, fixing a bug where promotions to A1 would be interpreted as en-passant, corrupting the board representation. It also contains minor improvements to search and evaluation: https://github.com/konsolas/ToppleChess/releases
PS: I really appreciate everyone who has offered to help test Topple
-
- Posts: 182
- Joined: Sun Jun 12, 2016 5:44 pm
- Location: London
- Full name: Vincent
Re: Topple
You need to initialise the board first. e.g. with the command "position startpos".
-
- Posts: 182
- Joined: Sun Jun 12, 2016 5:44 pm
- Location: London
- Full name: Vincent
Re: Topple
I think a lot of engines default to the start position, but the UCI protocol does state that:
"Before the engine is asked to search on a position, there will always be a position command to tell the engine about the current position."
So Topple starts without a default position loaded.
"Before the engine is asked to search on a position, there will always be a position command to tell the engine about the current position."
So Topple starts without a default position loaded.
-
- Posts: 919
- Joined: Tue Nov 24, 2015 9:11 pm
- Location: upstate
Re: Topple
Another way to do it is to run ucinewgame first.
Good job on the fix, Vincent: 64 games completed with v0.1.1 without a single illegal move.
Good job on the fix, Vincent: 64 games completed with v0.1.1 without a single illegal move.
Tirsa Poppins
CCRL
CCRL
-
- Posts: 12546
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Topple
Still no good.
This is a common problem with UCI engines.
I have added a setboard to ucinewgame to many UCI engines in the past.
Not having the engine ready for game play is a very strange thing about the UCI protocol to me.
What is the value in that?
Code: Select all
Topple v0.1.0 (c) Vincent Tang 2018
uci
id name Topple v0.1.0
id author Vincent Tang
option name Hash type spin default 128 min 1 max 1048576
option name Threads type spin default 1 min 1 max 128
option name Clear Hash type button
uciok
ucinewgame
go infinite
board=nullptr
I have added a setboard to ucinewgame to many UCI engines in the past.
Not having the engine ready for game play is a very strange thing about the UCI protocol to me.
What is the value in that?
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 182
- Joined: Sun Jun 12, 2016 5:44 pm
- Location: London
- Full name: Vincent
Re: Topple
The protocol states: "[ucinewgame] is sent to the engine when the next search (started with "position" and "go") will be from a different game", so a 'position' command must still be sent before the 'go' command, even if you use the 'ucinewgame' command.
A proper io sequence that conforms to the protocol could be:
With regards to your second question, Dann, I believe this choice was made for a few reasons:
A proper io sequence that conforms to the protocol could be:
Code: Select all
> uci
< id name Topple v0.1.1
< id author Vincent Tang
< option name Hash type spin default 128 min 1 max 1048576
< option name Threads type spin default 1 min 1 max 128
< option name Clear Hash type button
< uciok
> ucinewgame
> isready
< readyok
> position startpos
> go infinite
< info depth 1 seldepth 2 score cp 105 time 0 nodes 51 nps 51000 pv d2d4
etc...
- Often, when analysing a game, the GUI makes the engine start searching from the end of the game so that it's transposition table contains useful entries for earlier positions in the game. If the engine initialised itself to startpos after 'ucinewgame', it would be a waste because the GUI would have to send a position command telling the engine to load a different position anyway.
- Additionally, the GUI handles opening books for the engine, so the game often doesn't even start from startpos anyway, so initialising the engine to startpos after 'ucinewgame' would once again be a waste, because it would immediately receive a new position to load.
-
- Posts: 12546
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Topple
Maybe so, but I will still put a setpos into your ucinewgame for my own use.
I use it for things like profile and I want to reduce my keystrokes.
Yes, I really am that lazy.
I use it for things like profile and I want to reduce my keystrokes.
Yes, I really am that lazy.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 12546
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Topple
Code: Select all
} else if (cmd == "ucinewgame") {
delete board;
board = new board_t("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
} else if (cmd == "setoption") {
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.