New engine: belofte

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

Moderators: hgm, Rebel, chrisw

ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

New engine: belofte

Post by ydebilloez »

Dear all,

Please note a new engine has been published on sourceforge and on its website.
Its name is belofte, written in C and available under the GNU GPL v2 license.

http://www.macchess.be/dev-belofte.php
https://sourceforge.net/projects/belofte/

Yves De Billoëz
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine: belofte

Post by Guenther »

ydebilloez wrote:Dear all,

Please note a new engine has been published on sourceforge and on its website.
Its name is belofte, written in C and available under the GNU GPL v2 license.

http://www.macchess.be/dev-belofte.php
https://sourceforge.net/projects/belofte/

Yves De Billoëz
We know Belofte since more than 11 years :)

Code: Select all

Leos WBEC News:
09/12/2005:
New engine: Belofte 0.2.7 (Also Linux and MAC OS X!)
http://rwbc-chess.de/chronology.htm

Great that you released a new version after so long time!

Guenther
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: New engine: belofte

Post by hgm »

This is the engine famous for marching all its Pawns up to 7th rank, but then refusing to promote them, because it (apparently) cannot handle more than a single Queen! :lol:
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Ticket created... (https://sourceforge.net/p/belofte/tickets/5/)

No seriously, there is no limitation on the number of queens. But it seems a good testcase anyway.
Could be that it was playing that bad that it would refuse to promote to queen because it could end up winning the game if it did.

I am trying to compare the new version 0.9.1 with the older versions and with very weak engines. Playing against stockfish and the other good engines has at this moment no added value. I need to get over 1800 elo first.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine: belofte

Post by Guenther »

ydebilloez wrote:Ticket created... (https://sourceforge.net/p/belofte/tickets/5/)

No seriously, there is no limitation on the number of queens. But it seems a good testcase anyway.
Could be that it was playing that bad that it would refuse to promote to queen because it could end up winning the game if it did.

I am trying to compare the new version 0.9.1 with the older versions and with very weak engines. Playing against stockfish and the other good engines has at this moment no added value. I need to get over 1800 elo first.
This is an infamous game with Belofte 0.28. The only game ever played at RWBC,
where I overruled a resigned game result(despite FIDE rules).

Even the debug is still there after 7 years ;-)
It shows quite an eval instability with that old version (besides the search problems).

[pgn][Event "RWBC PSWBTM RT61"]
[Site "CAPPUCCINO"]
[Date "2009.03.10"]
[Round "8.7"]
[White "Belofte_028"]
[Black "EvilKnightIII_Jan042009nb"]
[Result "1/2-1/2"]
[ECO "A00"]
[PlyCount "100"]
[EventDate "2009.??.??"]

1. f3 b6 2. d4 d5 3. e4 dxe4 4. fxe4 Nf6 5. g3 Nxe4 6. Bg2 Bb7 7. Qd3 Nc5 8.
Qe2 Qxd4 9. Bxb7 Nxb7 10. Nd2 g6 11. Rb1 Bh6 12. Ndf3 Qg7 13. Bxh6 Qxh6 14. Qe4
c6 15. Nd4 f5 16. Qe6 Nd6 17. Nge2 c5 18. Nxf5 Qf8 19. Nxd6+ Kd8 20. Nf7+ Ke8
21. Qc8+ Kxf7 22. O-O+ Kg7 23. Rxf8 Rxf8 24. Qb7 Na6 25. Qxa6 h5 26. Rf1 Rxf1+
27. Kxf1 g5 28. Kg2 Kh8 29. Kh1 e5 30. Nc3 g4 31. Qe2 Re8 32. h3 a5 33. hxg4
hxg4 34. Qxg4 Re7 35. Qh4+ Rh7 36. Qxh7+ Kxh7 37. Ne4 Kg6 38. Nd6 Kh5 39. Nc4
Kg4 40. Nxe5+ Kxg3 41. Nd7 b5 42. Nxc5 Kf4 43. Ne6+ Ke5 44. Nc7 b4 45. Na6 Kd4
46. Nxb4 axb4 47. a3 bxa3 48. bxa3 Kc3 49. a4 Kb4 50. c3+ Kxa4 {White resigns
- wrong resign claim, Black cannot win, adjudicated as draw} 1/2-1/2[/pgn]

Code: Select all

873016 >first : time 155993
873016 >first : otim 116828
873016 >first : usermove 873016 >first : d4c3
873016 <first &#58;  got otim 116828
873282 <first &#58;    96 60.046 a3a4
873282 <first &#58;    96 59.995 h1g1
873282 <first &#58;    96 59.993 h1g2
873282 <first &#58;    96 59.970 h1h2
873282 <first &#58;    96 60.046 == target at depth 5
873297 <first &#58; move a3a4
machine move 96, castling = -1 -1 -1 -1 -1 -1
move to parse&#58; a3a4
7 0 4 7 0 4 Legality test? a3a4
-1 -1 -1 -1 -1 -1 Legality test? a3a4
(-1,0&#41; (-1,0&#41; (-1,0&#41; (-1,7&#41; (-1,7&#41; (-1,7&#41; castling rights
TC string = '+40/15&#58;0'
mps=40 tc=900000 inc=0
mps=40 tc=900000 inc=0
CoordsToAlgebraic, piece=0 &#40;0,2&#41;-&#40;0,3&#41; -
7 0 4 7 0 4 Legality test? a3a4
movetype=33, promochar=0=-
move&#58; a3a4
, parse&#58; a4 (
)
repeat test fmm=97 bmm=0 ep=-4, reps=6
...snip...
time odds&#58; 1 1 
873297 >second&#58; time 116828
873297 >second&#58; otim 155965
873297 >second&#58; usermove 873297 >second&#58; a3a4
873500 <second&#58; move c3b4
machine move 97, castling = -1 -1 -1 -1 -1 -1
move to parse&#58; c3b4
7 0 4 7 0 4 Legality test? c3b4
-1 -1 -1 -1 -1 -1 Legality test? c3b4
(-1,0&#41; (-1,0&#41; (-1,0&#41; (-1,7&#41; (-1,7&#41; (-1,7&#41; castling rights
TC string = '+40/15&#58;0'
mps=40 tc=900000 inc=0
mps=40 tc=900000 inc=0
CoordsToAlgebraic, piece=43 &#40;2,2&#41;-&#40;1,3&#41; -
move&#58; c3b4
, parse&#58; Kb4 (
)
repeat test fmm=98 bmm=0 ep=-4, reps=6
...snip...
time odds&#58; 1 1 
Interrupting first
873500 >first &#58; time 155965
873500 >first &#58; otim 116807
873500 >first &#58; usermove 873500 >first &#58; c3b4
873500 <first &#58;  got otim 116807
873657 <first &#58;    98 60.066 c2c3
873657 <first &#58;    98 60.063 h1h2
873657 <first &#58;    98 60.063 h1g2
873657 <first &#58;    98 60.063 h1g1
873657 <first &#58;    98 60.054 a4a5
873657 <first &#58;    98 -998.999 c2c4
873657 <first &#58;    98 60.066 == target at depth 5
873657 <first &#58; move c2c3
machine move 98, castling = -1 -1 -1 -1 -1 -1
move to parse&#58; c2c3
7 0 4 7 0 4 Legality test? c2c3
-1 -1 -1 -1 -1 -1 Legality test? c2c3
(-1,0&#41; (-1,0&#41; (-1,0&#41; (-1,7&#41; (-1,7&#41; (-1,7&#41; castling rights
TC string = '+40/15&#58;0'
mps=40 tc=900000 inc=0
mps=40 tc=900000 inc=0
CoordsToAlgebraic, piece=0 &#40;2,1&#41;-&#40;2,2&#41; -
7 0 4 7 0 4 Legality test? c2c3
movetype=33, promochar=0=-
move&#58; c2c3
, parse&#58; c3+ (
)
repeat test fmm=99 bmm=0 ep=-4, reps=6
...snip...
time odds&#58; 1 1 
873657 >second&#58; time 116807
873657 >second&#58; otim 155950
873657 >second&#58; usermove 873657 >second&#58; c2c3
873782 <second&#58; move b4a4
machine move 99, castling = -1 -1 -1 -1 -1 -1
move to parse&#58; b4a4
7 0 4 7 0 4 Legality test? b4a4
-1 -1 -1 -1 -1 -1 Legality test? b4a4
(-1,0&#41; (-1,0&#41; (-1,0&#41; (-1,7&#41; (-1,7&#41; (-1,7&#41; castling rights
TC string = '+40/15&#58;0'
mps=40 tc=900000 inc=0
mps=40 tc=900000 inc=0
CoordsToAlgebraic, piece=43 &#40;1,3&#41;-&#40;0,3&#41; -
move&#58; b4a4
, parse&#58; Kxa4 (
)
repeat test fmm=100 bmm=0 ep=-4, reps=6
...snip...
time odds&#58; 1 1 
Interrupting first
873782 >first &#58; time 155950
873782 >first &#58; otim 116795
873782 >first &#58; usermove 873782 >first &#58; b4a4
873782 <first &#58;  got otim 116795
873797 <first &#58;   100 -998.999 h1g1
873813 <first &#58;   100 -998.999 h1g2
873813 <first &#58;   100 -998.999 c3c4
873813 <first &#58;   100 -998.999 h1h2
873813 <first &#58;   100 -998.999 == target at depth 5
873813 <first &#58; 0-1 &#123;White resigns&#125;
GameEnds&#40;38, White resigns, 5&#41;
Interrupting first
873813 >first &#58; result 0-1 &#123;White resigns&#125;
873813 >second&#58; result 0-1 &#123;White resigns&#125;
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Thanks for this part of history. It is nice to see it actually played some nice moves at times.

There were some evaluation problems mixing up colours and thus inverting scores for some moves. It did also crash from time to time.

At this moment, I fixed some bugs and crashes. (Thanks to stricter gnu/clang compilers.)

Quiescence has been corrected as well (to some extend, cut-off at depth +8 and still not sure about material win and check handling). I am adding iterative deepening in order to respect time controls. I need 3-fold repetition in there and better opening book handling. (e.g. transposition)

Once chess-rules compliant, I will start working on better evaluation....

Any comments/corrections on the source code is welcome.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
tmokonen
Posts: 1296
Joined: Sun Mar 12, 2006 6:46 pm
Location: Kelowna
Full name: Tony Mokonen

Re: New engine: belofte

Post by tmokonen »

I made a quick Windows compile using Cygwin, and this is my first test game with Belofte 0.9.0, against good old Chad's Chess.

[pgn][Event "Computer chess game"]
[Site "TOSH-PC"]
[Date "2017.06.29"]
[Round "?"]
[White "Chad's Chess"]
[Black "Belofte 0.9.0"]
[Result "0-1"]
[ECO "D58"]
[Opening "QGD"]
[Time "06:24:46"]
[Variation "Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 c5"]
[WhiteElo "2000"]
[TimeControl "60+0"]
[Termination "normal"]
[PlyCount "144"]
[WhiteType "program"]
[BlackType "program"]

1. d4 Nf6 2. Nf3 e6 3. c4 d5 4. Nc3 Be7 5. Bg5 h6 6. Bh4 O-O 7. e3 b6 8.
Bd3 Bb7 9. O-O Nbd7 10. Bg3 c5 11. Rc1 Ne4 12. cxd5 exd5 13. dxc5 Nxc3 14.
Rxc3 bxc5 15. Bb1 Bf6 16. Qc2 g6 17. Rb3 Qa5 18. Rxb7 Nb6 19. b4 Qxb4 20.
Bc7 Qa5 21. Qd3 c4 22. Bxb6 axb6 23. Qd1 Rad8 24. Qd2 c3 25. Qd3 Qb4 26.
Bc2 Bh8 27. a3 Qd6 28. g4 Qe6 29. Kh1 Qf6 30. Ne1 Qc6 31. Ra7 Rb8 32. Kg1
Rfd8 33. Nf3 Rbc8 34. Qe2 Qf6 35. Rc1 Qe6 36. Ra4 Rc7 37. Qa6 Qf6 38. Nd4
Rcd7 39. Nb3 Re8 40. f3 Qxf3 41. Qxb6 Qe2 42. h4 Qxe3+ 43. Qxe3 Rxe3 44.
Kf1 Rd8 45. Kg1 Re2 46. Rb4 Re3 47. a4 Be5 48. Kf2 d4 49. Rf1 Bg3+ 50. Kg2
d3 51. Bb1 c2 52. Bxc2 dxc2 53. h5 Bd6 54. Nc5 Bxc5 55. Rb5 Ba3 56. hxg6
fxg6 57. Rf6 Rd2+ 58. Kg1 Re4 59. Rxg6+ Kf7 60. Rf6+ Kxf6 61. Rf5+ Kg6 62.
Rf2 Rxg4+ 63. Kh2 Rxf2+ 64. Kh3 Rxa4 65. Kg3 Raf4 66. Kh3 Kg5 67. Kg3 Kh5
68. Kh3 Bc5 69. Kg3 c1=B 70. Kh3 Ba7 71. Kg3 Rf7 72. Kh3 R7f3# 0-1
[/pgn]

It was not shy to promote, but decided to underpromote to a bishop. I played a second game, and it also chose to underpromote to a bishop in that game as well, so that is something that needs to be looked at.

I uploaded my compile here, in case anyone wants to play with Belofte 0.9.0:

https://drive.google.com/open?id=0B9voF ... FNPRklwZVE
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: New engine: belofte

Post by Rebel »

I remember while pondering about a name for my chess program back in 1980 it at first was called "Promise" which iin Dutch means "Belofte".
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine: belofte

Post by Guenther »

ydebilloez wrote:Thanks for this part of history. It is nice to see it actually played some nice moves at times.

There were some evaluation problems mixing up colours and thus inverting scores for some moves. It did also crash from time to time.

At this moment, I fixed some bugs and crashes. (Thanks to stricter gnu/clang compilers.)

Quiescence has been corrected as well (to some extend, cut-off at depth +8 and still not sure about material win and check handling). I am adding iterative deepening in order to respect time controls. I need 3-fold repetition in there and better opening book handling. (e.g. transposition)

Once chess-rules compliant, I will start working on better evaluation....

Any comments/corrections on the source code is welcome.
I downloaded the 0.90 version from the link below and I want to inform
you that it creates logs which are still named after version 0.28.

https://sourceforge.net/p/belofte/gitre ... ase/Win32/
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
tmokonen
Posts: 1296
Joined: Sun Mar 12, 2006 6:46 pm
Location: Kelowna
Full name: Tony Mokonen

Re: New engine: belofte

Post by tmokonen »

That's the old 0.2.8 compile with a 2017 file modified date.