Havoc - New Gothic chess engine

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

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Havoc - New Gothic chess engine

Post by hgm »

Tord wrote: Mon Feb 15, 2021 3:21 pmHow about 10x10 chess? I'm tempted to give Grand Chess (https://en.wikipedia.org/wiki/Grand_chess) a try later this year. I haven't tried playing any of these large-board variants for more than a handful of games, but Grand Chess always looked like the most attractive of them to me.
I never have really played Grand Chess (or watced it much), even though I once made an engine that could. But it should be very similar to the 10x8 variants. In the middle-game the extra ranks are not very relevant, and the 'area of engagement' is similar to that of a 10x8 board.
JohnWoe
Posts: 491
Joined: Sat Mar 02, 2013 11:31 pm

Re: Havoc - New Gothic chess engine

Post by JohnWoe »

Capablanca support added (2 lines of code :lol: ) + tons of bug fixes.

EG knowledge added. Need to tune all parameters next. That's easy ELO.

Updated Havoc's "homepage": https://samuraidangyo.github.io/

I have gained some ELO. Here a 100 game match v Fairy. Capablanca results:

Code: Select all

Score of Havoc 0.82 vs Fairy-Max 5.0b: 29 - 67 - 4  [0.310] 100
...      Havoc 0.82 playing White: 10 - 39 - 1  [0.210] 50
...      Havoc 0.82 playing Black: 19 - 28 - 3  [0.410] 50
...      White vs Black: 38 - 58 - 4  [0.400] 100
Elo difference: -139.0 +/- 73.3, LOS: 0.0 %, DrawRatio: 4.0 %
Finished match
Nicely played capablanca game by Havoc.
Havoc is actually pretty fast already.
There are still tons of low hanging fruits to grab more NPS.

Code: Select all

[Event "?"]
[Site "?"]
[Date "2021.02.16"]
[Round "99"]
[White "Havoc 0.82"]
[Black "Fairy-Max 5.0b"]
[Result "1-0"]
[TimeControl "10+0.1"]
[Variant "capablanca"]
[GameDuration "00:00:37"]
[GameEndTime "2021-02-16T10:45:26.926 EET"]
[GameStartTime "2021-02-16T10:44:49.245 EET"]
[PlyCount "245"]
[Annotator "1. +0,33   1... +0,10"]

1. e4 {+0,33/6 3}
{s}
1... Nc6 {+0,10/5 2,3}
{s}
2. d3 {+0,73/6 3}
{s}
2... Nh6 {-0,08/6 2,9}
{s}
3. Ci3 {+0,78/6 3}
{s}
3... e5 {-0,04/6 4}
{s}
4. Ci5 {+0,27/5 3}
{s}
4... Ci8 {-0,05/4 2,3}
{s}
5. f4 {+0,72/4 3}
{s}
5... j6 {-0,05/4 7}
{s}
6. Ch3 {+0,65/5 2,9}
{s}
6... d6 {+0,20/4 1,0}
{s}
7. f5 {+0,56/5 2,8}
{s}
7... g6 {-0,05/4 2,0}
{s}
8. g4 {+0,52/5 2,8}
{s}
8... gxf5 {+0,07/3 10}
{s}
9. gxf5 {+0,66/5 2,7}
{s}
9... Bf6 {-0,18/4 1,7}
{s}
10. Be3 {+0,75/5 2,7}
{s}
10... Bg7 {-0,24/5 2,8}
{s}
11. Ng2 {+0,94/5 2,6}
{s}
11... Nd4 {-0,18/4 2,4}
{s}
12. c3 {+1,02/5 2,6}
{s}
12... Nc6 {-0,37/5 6}
{s}
13. c4 {+1,10/5 2,5}
{s}
13... Ne7 {-0,13/3 6}
{s}
14. O-O {+1,53/5 2,5}
{s}
14... Nc6 {-0,26/4 2,8}
{s}
15. Bh5 {+1,42/5 2,4}
{s}
15... Nd4 {+0,05/4 1,1}
{s}
16. Qa5 {+1,49/4 2,4}
{s}
16... Nc2 {+1,31/5 1,2}
{s}
17. Ab3 {-0,14/6 2,3}
{s}
17... Nxa1 {+1,43/5 1,6}
{s}
18. Axa1 {-0,27/5 2,3}
{s}
18... b6 {+1,55/4 8}
{s}
19. Qe1 {-0,30/5 2,2}
{s}
19... Ab7 {+1,53/4 2,1}
{s}
20. Rf1 {-0,33/5 2,2}
{s}
20... Qe7 {+1,60/4 1,7}
{s}
21. Ab3 {-0,06/4 2,1}
{s}
21... O-O-O {+1,66/4 8}
{s}
22. Nc3 {-0,05/4 2,1}
{s}
22... a5 {+1,59/3 9}
{s}
23. Nd5 {+0,61/4 2,1}
{s}
23... Qe8 {+1,10/4 6}
{s}
24. f6 {+0,87/4 2,0}
{s}
24... Bf8 {+0,92/4 8}
{s}
25. Qg3 {+0,86/4 2,0}
{s}
25... Ac6 {+0,98/4 3}
{s}
26. Ne7+ {+2,05/4 2,0}
{s}
26... Bxe7 {+1,47/5 8}
{s}
27. fxe7 {-0,31/4 1,9}
{s}
27... Qxe7 {+1,21/6 10}
{s}
28. Bg5 {+0,54/5 1,9}
{s}
28... Qe6 {+1,12/5 2,0}
{s}
29. Bxd8 {+0,97/5 1,9}
{s}
29... Axd8 {+0,95/4 1,5}
{s}
30. c5 {+1,07/5 1,9}
{s}
30... Qe7 {+0,97/3 6}
{s}
31. Ad5 {+1,08/5 1,8}
{s}
31... Qd7 {+0,97/3 7}
{s}
32. cxd6 {+0,88/5 1,8}
{s}
32... Qxd6 {+0,96/2 4}
{s}
33. Ac4 {+1,98/5 1,8}
{s}
33... Qe7 {+0,02/3 1,1}
{s}
34. Qxe5 {+1,83/5 1,7}
{s}
34... Qxe5 {+0,00/3 5}
{s}
35. Axe5 {+1,72/5 1,7}
{s}
35... Ae6 {+0,50/5 8}
{s}
36. Ac3 {+1,51/6 1,7}
{s}
36... Axh3+ {+0,51/6 5}
{s}
37. ixh3 {+1,25/7 1,7}
{s}
37... i6 {+0,43/6 7}
{s}
38. Bj3 {+1,25/6 1,6}
{s}
38... i5 {+0,25/6 8}
{s}
39. Ne3 {+1,41/6 1,6}
{s}
39... Ci6 {+0,39/5 5}
{s}
40. Rg1 {+1,23/5 1,6}
{s}
40... Ch4 {+0,57/5 5}
{s}
41. Bi2 {+0,59/6 1,6}
{s}
41... f5 {+0,56/5 2,9}
{s}
42. exf5 {+0,62/6 1,6}
{s}
42... Cf4 {-0,50/5 2,6}
{s}
43. f6 {+1,30/6 1,5}
{s}
43... Cxd3 {-0,25/4 3}
{s}
44. h4+ {+1,04/6 1,5}
{s}
44... Kb8 {-0,31/4 7}
{s}
45. Ae4 {+1,09/6 1,5}
{s}
45... Ce5 {-0,16/5 6}
{s}
46. Ag5 {+1,26/6 1,5}
{s}
46... Cg6 {-0,17/5 8}
{s}
47. Nf5 {+1,27/7 1,5}
{s}
47... Nf7 {-0,22/4 3}
{s}
48. Ae3 {+1,91/6 1,5}
{s}
48... Ci6 {-0,62/5 4}
{s}
49. Ne7 {+2,15/6 1,4}
{s}
49... Nh6 {-0,55/5 7}
{s}
50. h5 {+3,23/6 1,4}
{s}
50... Ci8 {-1,57/6 3}
{s}
51. Nxg8 {+3,62/6 1,4}
{s}
51... Nxg8 {-2,73/7 1,5}
{s}
52. f7 {+3,96/7 1,4}
{s}
52... Nf6 {-3,30/7 1,0}
{s}
53. Rf1 {+5,62/6 1,4}
{s}
53... Nxh5 {-3,42/7 1,9}
{s}
54. Axj8 {+5,65/6 1,4}
{s}
54... Cxj8 {-4,31/7 9}
{s}
55. f8=C+ {+6,02/7 1,4}
{s}
55... Cxf8 {-3,21/1 3}
{s}
56. Rxf8+ {+6,42/9 1,4}
{s}
56... Kb7 {-4,26/7 1,4}
{s}
57. Bh1+ {+6,42/7 1,4}
{s}
57... Ka6 {-4,45/7 1,5}
{s}
58. Rf7 {+6,99/7 1,3}
{s}
58... c5 {-4,30/7 1,7}
{s}
59. Bf3 {+6,92/7 1,3}
{s}
59... Ni7 {-5,03/7 1,8}
{s}
60. Be4 {+7,10/7 1,3}
{s}
60... Ng8 {-4,05/5 4}
{s}
61. Bxh7 {+7,60/7 1,3}
{s}
61... Nh6 {-5,87/7 1,3}
{s}
62. Bd3+ {+7,92/8 1,3}
{s}
62... c4 {-6,02/7 4}
{s}
63. Bxc4+ {+8,95/8 1,3}
{s}
63... b5 {-7,07/7 4}
{s}
64. Rf6+ {+9,19/8 1,3}
{s}
64... Ka7 {-7,94/7 6}
{s}
65. Bxb5 {+9,08/8 1,3}
{s}
65... Ng4 {-8,00/7 8}
{s}
66. Rxj6 {+9,35/8 1,3}
{s}
66... Kb7 {-8,11/6 4}
{s}
67. Bd3 {+9,42/7 1,2}
{s}
67... Nf2 {-7,39/5 4}
{s}
68. Bf5 {+9,42/8 1,2}
{s}
68... Nd1 {-7,44/7 1,6}
{s}
69. Be4+ {+9,41/7 1,2}
{s}
69... Ka7 {-7,27/7 2,0}
{s}
70. Rj7+ {+9,44/7 1,2}
{s}
70... Ka6 {-7,24/6 3}
{s}
71. Rb7 {+9,76/7 1,2}
{s}
71... Nf2 {-7,10/7 7}
{s}
72. Bd5 {+9,68/8 1,2}
{s}
72... Nd3 {-7,31/7 1,2}
{s}
73. Bf3 {+9,73/8 1,2}
{s}
73... Ne5 {-7,26/7 1,0}
{s}
74. Be4 {+9,79/7 1,2}
{s}
74... Nd3 {-7,33/7 8}
{s}
75. Rb8 {+9,68/8 1,2}
{s}
75... Nf4 {-7,36/7 1,5}
{s}
76. Rf8 {+9,97/7 1,2}
{s}
76... Nh3+ {-7,38/8 5}
{s}
77. Ki2 {+9,81/8 1,2}
{s}
77... Ng5 {-7,83/7 1,3}
{s}
78. Ra8+ {+30,51/7 1,2}
{s}
78... Kb6 {-7,92/7 1,9}
{s}
79. Bf5 {+9,88/7 1,2}
{s}
79... Nf3 {-7,39/6 4}
{s}
80. Ki3 {+9,86/7 1,2}
{s}
80... Nh4 {-7,33/6 3}
{s}
81. Be4 {+10,56/8 1,1}
{s}
81... Ni6 {-8,08/7 1,4}
{s}
82. Rc8 {+13,66/7 1,1}
{s}
82... Ng5 {-7,69/7 1,7}
{s}
83. Bf5 {+10,06/7 1,1}
{s}
83... Ni6 {-7,78/7 3}
{s}
84. Rf8 {+13,34/7 1,1}
{s}
84... Nh4 {-7,92/6 4}
{s}
85. Be4 {+11,07/7 1,1}
{s}
85... Kc5 {-8,09/6 3}
{s}
86. Rd8 {+10,84/7 1,1}
{s}
86... Nj5+ {-8,23/5 5}
{s}
87. Ki4 {+11,01/8 1,1}
{s}
87... Nh6+ {-8,23/8 5}
{s}
88. Kh5 {+12,66/8 1,1}
{s}
88... Nf7 {-8,31/7 9}
{s}
89. Rd7 {+13,64/7 1,1}
{s}
89... Nd6 {-8,18/7 1,5}
{s}
90. Bf3 {+10,91/7 1,1}
{s}
90... a4 {-8,25/6 6}
{s}
91. Kxi5 {+10,99/7 1,1}
{s}
91... Nc4 {-8,37/7 1,7}
{s}
92. b3 {+11,03/7 1,1}
{s}
92... Nb6 {-8,32/7 2,4}
{s}
93. Rc7+ {+11,03/7 1,1}
{s}
93... Kd4 {-8,18/7 9}
{s}
94. bxa4 {+10,98/7 1,1}
{s}
94... Nxa4 {-8,29/6 3}
{s}
95. a3 {+11,01/7 1,1}
{s}
95... Nc5 {-8,18/6 4}
{s}
96. Kh4 {+11,01/7 1,1}
{s}
96... Nd3 {-8,29/6 4}
{s}
97. Rd7+ {+10,97/7 1,1}
{s}
97... Ke3 {-8,19/7 6}
{s}
98. Bd5 {+10,92/8 1,1}
{s}
98... Ne5 {-8,21/7 6}
{s}
99. Rg7 {+10,83/7 1,1}
{s}
99... Kd4 {-8,26/7 4}
{s}
100. Bg2 {+10,69/7 1,1}
{s}
100... Ke3 {-8,38/6 3}
{s}
101. Kh5 {+10,92/7 1,1}
{s}
101... Nd3 {-8,38/6 6}
{s}
102. Re7+ {+10,93/7 1,1}
{s}
102... Kf4 {-8,36/7 1,4}
{s}
103. j4 {+11,13/7 1,1}
{s}
103... Kf5 {-8,27/6 4}
{s}
104. Be4+ {+11,17/7 1,1}
{s}
104... Kf6 {-8,23/8 9}
{s}
105. Rc7 {+10,88/8 1,1}
{s}
105... Nf2 {-8,21/8 1,9}
{s}
106. Bf3 {+10,95/7 1,1}
{s}
106... Nd3 {-8,80/8 3}
{s}
107. a4 {+10,98/7 1,0}
{s}
107... Kf5 {-8,22/6 4}
{s}
108. j5 {+11,42/7 1,1}
{s}
108... Kf4 {-8,72/7 9}
{s}
109. Bh1 {+11,38/7 1,0}
{s}
109... Kf5 {-8,82/6 1,0}
{s}
110. j6 {+11,86/7 1,0}
{s}
110... Nf4+ {-12,51/8 1,0}
{s}
111. Kh6 {+14,88/9 1,1}
{s}
111... Ne6 {-12,60/7 4}
{s}
112. Bi2+ {+14,88/7 1,1}
{s}
112... Ke5 {-12,58/7 5}
{s}
113. Re7 {+15,28/7 1,1}
{s}
113... Kf4 {-18,86/7 6}
{s}
114. Rxe6 {+24,76/8 1,0}
{s}
114... Kf3 {-19,96/8 9}
{s}
115. j7 {+24,60/7 1,0}
{s}
115... Kg2 {-19,94/8 8}
{s}
116. Re2+ {+25,03/7 1,0}
{s}
116... Kf3 {-20,36/8 8}
{s}
117. Rb2 {+25,23/8 1,0}
{s}
117... Ke3 {-20,00/7 4}
{s}
118. Rb7 {+25,55/7 1,0}
{s}
118... Ke4 {-19,96/7 8}
{s}
119. j8=Q {+25,84/7 1,0}
{s}
119... Kf3 {-20,50/7 8}
{s}
120. Qe8 {+26,41/6 1,0}
{s}
120... Kf2
{-M6/7 0.060s}
121. Qe5 {+26,44/6 1,0}
{s}
121... Kg2
{-M4/11 0.038s}
122. Rf7 {+104,85/4 1,1}
{s}
122... Kg1
{-M2/28 0.001s}
123. Qg3#
{+104.85/2 0.002s, White mates} 1-0

Tord
Posts: 31
Joined: Tue Feb 27, 2018 11:29 am

Re: Havoc - New Gothic chess engine

Post by Tord »

hgm wrote: Mon Feb 15, 2021 3:36 pm
Tord wrote: Mon Feb 15, 2021 3:21 pmHow about 10x10 chess? I'm tempted to give Grand Chess (https://en.wikipedia.org/wiki/Grand_chess) a try later this year. I haven't tried playing any of these large-board variants for more than a handful of games, but Grand Chess always looked like the most attractive of them to me.
I never have really played Grand Chess (or watced it much), even though I once made an engine that could. But it should be very similar to the 10x8 variants. In the middle-game the extra ranks are not very relevant, and the 'area of engagement' is similar to that of a 10x8 board.
I think in part I just find the 10x8 board visually unattractive. In addition, the board just feels a little too crowded with all those powerful pieces, and there is the practical detail that 10x10 boards are much easier to find than 10x8 boards (since 10x10 checkers is a rather popular game).
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Havoc - New Gothic chess engine

Post by hgm »

I am not sure the extra ranks really make the board less crowded, as the battle is still concentrated in the central 10x8 area, due to the initial setup placing the pieces on rank 2 and 3. And promotion is even closer than in Capablanca/Gothic, due to the deeper zone. But you could be right. Anyway, even if it is 'just as good' as Gothic Chess, it will be a great game.

You are of course right about the Draughts boards; in the Netherlands one almost always finds a 10x10 board on the back of any Chess board. It is amazing that Amarican variant players so often complain about the availability of the larger board, as they can be mail-ordered in a large range of qualities, at quite reasonable prices.

I know you are also no stranger to Shogi, and if you like 10x10 Chess variants, you might look favorable on the variant Elven Chess, which I designed. Which is sort of a Grand Chess / Chu Shogi hybrid. (I know, shameless plugging of my own variant designs. :lol: )
User avatar
Nordlandia
Posts: 2821
Joined: Fri Sep 25, 2015 9:38 pm
Location: Sortland, Norway

Re: Havoc - New Gothic chess engine

Post by Nordlandia »

You may not know that Chess.com recently added Gothic Chess to the variant sector.

https://www.chess.com/variants/gothic-chess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Havoc - New Gothic chess engine

Post by mvanthoor »

More pieces and more power per piece doesn't necessarily make a game more interesting. I've been looking into chess variants, and some of them are so incredibly complicated that it's even hard to remember all the rules. Some of them give you like 8 or 10 extra pieces; in the beginning, either opponent chooses to swap (or not swap) one standard piece for one of the extra pieces, and a pawn now also has 8-10 extra promotion options. Add to this the possibility of dropping pieces back into play, and you have a chess variant that's almost impossible to understand.

Compared to chess, Go is incredibly simple with regard to piece movement/placement and rules (except maybe super-ko and repetitions), but the complexity is enormous.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
Tord
Posts: 31
Joined: Tue Feb 27, 2018 11:29 am

Re: Havoc - New Gothic chess engine

Post by Tord »

hgm wrote: Tue Feb 16, 2021 11:32 am I am not sure the extra ranks really make the board less crowded, as the battle is still concentrated in the central 10x8 area, due to the initial setup placing the pieces on rank 2 and 3. And promotion is even closer than in Capablanca/Gothic, due to the deeper zone. But you could be right. Anyway, even if it is 'just as good' as Gothic Chess, it will be a great game.
True, all of these variants are interesting and fun.
I know you are also no stranger to Shogi, and if you like 10x10 Chess variants, you might look favorable on the variant Elven Chess, which I designed. Which is sort of a Grand Chess / Chu Shogi hybrid. (I know, shameless plugging of my own variant designs. :lol: )
Nice, although I'm not sure I like the complicated rules for Warlock captures.

I've also been attracted to hexagonal variants since many years. Recently I've been trying to make some kind of Capablanca chess on a 91-cell hexagonal board. The best I have come up with so far is this setup, with an archbishop, a chancellor and four wazirs for each side:

Code: Select all

                        #b#     
                    #q#     #k#     
                #a#     #b#     #c#     
            #r#     #n#     #n#     #r#     
        #w#     #w#     #b#     #w#     #w#     
    #p#     #p#     #p#     #p#     #p#     #p#     
        #p#     #p#     #p#     #p#     #p#     
    ...     ...     ...     ...     ...     ...     
        ...     ...     ...     ...     ...     
    ...     ...     ...     ...     ...     ...     
        ...     ...     ...     ...     ...             
    ...     ...     ...     ...     ...     ...        
        ...     ...     ...     ...     ...             
    ...     ...     ...     ...     ...     ...        
        .P.     .P.     .P.     .P.     .P.             
    .P.     .P.     .P.     .P.     .P.     .P.        
        .W.     .W.     .B.     .W.     .W.       
            .R.     .N.     .N.     .R.              
                .A.     .B.     .C.                    
                    .Q.     .K.                         
                        .B.
JohnWoe
Posts: 491
Joined: Sat Mar 02, 2013 11:31 pm

Re: Havoc - New Gothic chess engine

Post by JohnWoe »

I haven't forgotten Havoc at all.
Lots of upgrades. Null move implemented.
Tons of bug fixes + speed ups.
Time management improved. XBoard doesn't send movestogo so no free lunches here vs UCI :D
Finally Havoc is starting to play well.
2x faster than Fairy-max and searching 2 plies deeper. Not strong enough.

Teaser of a very well played game by Havoc 0.9
I like KID structure and finishing checkmate

Code: Select all

[Event "Computer Chess Game"]
[Site "pc"]
[Date "2021.02.20"]
[Round "-"]
[White "Havoc 0.9"]
[Black "Fairy-Max 5.0b"]
[Result "1-0"]
[TimeControl "40/60"]
[Variant "gothic"]
[Annotator "1. +0,30   1... +0,16"]

1. Nh3 {+0,30/6} Nc6 {+0,16/6 0,9} 2. d3 {+0,24/7 1,5} Nh6 {+0,06/6 0,9} 3.
Nc3 {+0,22/6 1,5} d6 {+0,09/6 2,4} 4. f3 {+0,24/6 1,5} g6 {+0,01/6 0,7} 5.
Bd2 {+0,20/6 1,5} Be6 {+0,12/6 1,0} 6. g4 {+0,11/6 1,5} f5 {+0,11/5 0,7} 7.
gxf5 {+0,19/7 1,5} Bxf5 {+0,02/7 2,8} 8. Bg2 {+0,32/6 1,5} Bd4
{+0,04/6 2,0} 9. e3 {+0,35/7 1,5} Bf6 {+0,01/6 0,9} 10. Af2 {+0,38/7 1,5}
e6 {+0,04/5 0,7} 11. i3 {+0,42/6 1,5} Be5 {-0,23/6 2,4} 12. O-O
{+0,77/7 1,5} Bf6 {-0,04/5 0,7} 13. e4 {+1,35/8 1,5} Bxh3 {-0,34/7 1,3} 14.
Bxh3 {+1,34/6 1,5} Af7 {-0,27/7 2,9} 15. Cg2 {+1,18/6 1,5} O-O
{-0,23/6 1,5} 16. Bi2 {+1,11/5 1,5} Bd4 {-0,41/5 0,7} 17. Ag3 {+1,16/6 1,5}
Be5 {-0,38/5 0,7} 18. f4 {+1,23/6 1,5} Bf6 {-0,49/7 2,2} 19. Ce3
{+1,14/6 1,5} Nd4 {-0,42/6 2,5} 20. Qf1 {+1,09/6 1,5} c6 {-0,46/6 3} 21.
Qg2 {+1,26/6 1,5} e5 {-0,29/6 1,7} 22. Rhf1 {+1,34/6 1,5} Qb6 {-0,33/5 0,6}
23. b3 {+1,20/6 1,5} Ne6 {-0,25/5 0,7} 24. fxe5 {+1,22/6 1,5} Bxe5
{-0,46/6 1,3} 25. Ae2 {+1,31/6 1,5} Bf6 {-0,47/6 3} 26. Cc4 {+1,39/6 1,5}
Qa6 {-1,15/5 1,2} 27. Cb4 {+1,50/6 1,5} Qa3 {-1,37/7 16} 28. Cxb7
{+1,49/6 1,5} Ad8 {-1,30/6 0,7} 29. Cd7 {+2,39/6 1,5} Nc5 {-1,07/4 0,4} 30.
Cxd8 {+0,94/6 1,5} Rxd8 {-1,57/5 0,4} 31. Qf3 {+1,26/6 1,5} Bxc3
{-1,46/4 0,1} 32. Bxh6 {+4,09/8 1,5} i6 {-4,49/3 0,1} 33. Axc3
{+4,13/7 1,5} Ne6 {-4,48/4 0,1} 34. Ae1 {+5,47/7 1,5} j5 {-4,84/5 0,1} 35.
Aj6+ {+5,21/7 1,5} Kj7 {-9,46/5 0,2} 36. Ai5+ {+5,67/8 1,5} Ki8
{-9,51/6 0,4} 37. Bc1 {+9,86/7 1,5} Rf8 {-9,62/6 0,1} 38. Qxf8+
{+11,74/9 1,5} Nxf8 {-12,73/7 0,1} 39. Ah6+ {+13,56/9 1,5} Kh8
{-13,14/7 0,2} 40. Bxa3 {+14,76/9 1,5} Ne6 {-13,15/6 0,1} 41. Bb2+
{+104,85/8 0,3} Cg7 {-1000,03/24 0,6} 42. Bxe6 {+104,85/6 0,1} Rg8
{-1000,02/28 0,1} 43. Bxg8 {+104,85/4 0,1} a5 {-1000,01/28 0,1} 44. Bxg7#
{+104,85/2 0,1}
{Xboard adjudication: Checkmate} 1-0
Here Havoc 0.9 analysis(XBoard analysis supported w/ undo): Only Rj8 wins. Part of Havoc's bench.

Code: Select all

 14	+6,01 	117,2M	0:48.00	a8j8 
 13	+5,56 	85,9M  	0:35.23	a8j8 
 12	+2,58 	32,2M  	0:13.78	a8j8 
 11	+2,39 	13,9M  	0:05.90	g1h2 
 10	+2,37 	4,09M  	0:01.74	g1h2 
  9	+2,49 	1,17M  	0:00.50	g1h2 
  8	+2,40 	609414	0:00.27	g1h2 
  7	+2,49 	90596  	0:00.05	g1f2 
  6	+2,43 	36359  	0:00.02	g1f2 
  5	+2,43 	11924  	0:00.01	g1f2 
  4	+2,43 	3016    	0:00.00	g1f2 
  3	+2,43 	911      	0:00.00	g1g2 
  2	+2,41 	184      	0:00.00	g1h2 
  1	+2,47 	35        	0:00.00	g1h2 
  0	# 
mvanthoor wrote: Tue Feb 16, 2021 11:52 am More pieces and more power per piece doesn't necessarily make a game more interesting. I've been looking into chess variants, and some of them are so incredibly complicated that it's even hard to remember all the rules. Some of them give you like 8 or 10 extra pieces; in the beginning, either opponent chooses to swap (or not swap) one standard piece for one of the extra pieces, and a pawn now also has 8-10 extra promotion options. Add to this the possibility of dropping pieces back into play, and you have a chess variant that's almost impossible to understand.

Compared to chess, Go is incredibly simple with regard to piece movement/placement and rules (except maybe super-ko and repetitions), but the complexity is enormous.
In Gothic chess there's only (A)rchbishop and (C)hancellor extra pieces. + 2 extra pawns. So 40 pieces per side. When I played chess I always played Gothic/Capablanca not 8x8 because it's simply much better game. Caparandom is a silly variant with silly castling rules. Just extra work for lazy programmers like me :lol:
JohnWoe
Posts: 491
Joined: Sat Mar 02, 2013 11:31 pm

Re: Havoc - New Gothic chess engine

Post by JohnWoe »

hgm:
XBoard sends "random" Should I add lots of random in evaluation? Right now I use 100cp and [-2, +2] random component.
Also XBoard sends "." -> Should I print the last message?

Fixed 1 stupid bug in evaluation. Threw in speed ups too.
Havoc started to play well.
Scored a victory in 10 x 60s/40 10x8 Capa games too.

In Capablanca Havoc is probably slightly stronger than Fairy.
In Gothic somehow results have been ~40% vs Fairy :shock:
No other variants supported yet.

About Musketeer chess w/ 10 extra pieces. You will still get bastardized by fast magic bitboarders because small 8x8 board. No thanks!

I was asked about release. I will ship binaries once Havoc is stronger. Right now it's not very strong.
I won't ship source code. I don't want to bastardize Gothic variant w/ open source.

I'm impressed about Fairy so small and simple. Still putting up a big fight every time! :D

First match victory against Fairy! In Capablanca 10x8 ofc

Code: Select all

Score of Havoc 1.0 vs Fairy-Max 5.0b: 581 - 307 - 112  [0.637] 1000
...      Havoc 1.0 playing White: 270 - 175 - 55  [0.595] 500
...      Havoc 1.0 playing Black: 311 - 132 - 57  [0.679] 500
...      White vs Black: 402 - 486 - 112  [0.458] 1000
Elo difference: 97.7 +/- 21.0, LOS: 100.0 %, DrawRatio: 11.2 %
Finished match
JohnWoe
Posts: 491
Joined: Sat Mar 02, 2013 11:31 pm

Re: Havoc - New Gothic chess engine

Post by JohnWoe »

Havoc 1.02 !

Lots of ELO gains. Improved null move, lmr algorithm much better, opening book support, threads(not much ELO from extra threads yet)
Havoc is written in beautiful OOP style. Adding multithreading was just 10 extra lines :D
I wrote a PSQT generator so some of the ELO gains are from there.
Havoc is right now 100 - 200 ELO stronger than Fairy. So I'm heading to the right direction.

Havoc homepage: https://samuraidangyo.github.io/

Gothic: +156 ELO !!!

Code: Select all

Score of Havoc 1.01 vs Fairy-Max 5.0b: 667 - 248 - 85  [0.710] 1000
...      Havoc 1.01 playing White: 349 - 112 - 39  [0.737] 500
...      Havoc 1.01 playing Black: 318 - 136 - 46  [0.682] 500
...      White vs Black: 485 - 430 - 85  [0.527] 1000
Elo difference: 155.1 +/- 22.5, LOS: 100.0 %, DrawRatio: 8.5 %
Finished match
Capa: +133 ELO !!!

Code: Select all

Score of Havoc 1.02 vs Fairy-Max 5.0b: 633 - 270 - 97  [0.681] 1000
...      Havoc 1.02 playing White: 305 - 151 - 44  [0.654] 500
...      Havoc 1.02 playing Black: 328 - 119 - 53  [0.709] 500
...      White vs Black: 424 - 479 - 97  [0.472] 1000
Elo difference: 132.1 +/- 21.8, LOS: 100.0 %, DrawRatio: 9.7 %
Finished match
Teaser game:

Code: Select all

[Event "Computer Chess Game"]
[Site "pc"]
[Date "2021.02.27"]
[Round "-"]
[White "Havoc 1.02"]
[Black "Fairy-Max 5.0b"]
[Result "1-0"]
[TimeControl "40/60"]
[Variant "gothic"]
[Annotator "2. +0,32   1... +0,09"]

1. Nc3 Nc6 {+0,09/6 0,8} 2. d4 {+0,32/6 1,5} e5 {+0,07/6 3} 3. dxe5
{+0,35/7 1,5} Nxe5 {-0,13/6 1,2} 4. Nh3 {+0,43/7 1,5} Cd6 {-0,07/6 1,4} 5.
Nd5 {+0,85/7 1,5} c6 {+0,08/7 8} 6. f4 {-0,19/8 1,5} Cxd5 {+0,79/7 0,6} 7.
fxe5 {-0,11/8 1,5} Cxe5 {+0,73/7 2,1} 8. Bf4 {+0,40/7 1,5} Cc4 {+0,94/6 3}
9. Bd6+ {+0,40/7 1,5} Ke8 {+0,88/6 0,8} 10. b3 {+0,48/7 1,5} Ca5
{+0,97/6 1,3} 11. e4 {+0,68/6 1,5} g5 {+1,23/6 0,5} 12. e5 {+0,63/7 1,5} b5
{+1,08/5 0,9} 13. Ce4 {+1,23/6 1,5} h6 {+1,08/6 0,6} 14. Bb4 {+1,62/6 1,5}
Cb7 {+0,50/6 0,8} 15. Ac5 {+2,94/8 1,5} Qb6 {-0,58/7 1,0} 16. Axb6
{+3,35/6 1,5} axb6 {-0,44/7 0,7} 17. g4 {+3,20/7 1,5} Ah7 {-0,23/5 0,5} 18.
Ce3 {+3,31/8 1,5} Ag6 {-0,35/6 0,5} 19. Bd6 {+3,31/7 1,5} Ah4 {-0,32/6 1,4}
20. i3 {+3,97/8 1,5} Aj6 {-0,45/6 0,7} 21. Be4 {+4,07/6 1,5} Ai4
{-0,31/6 1,2} 22. Rh1 {+3,86/7 1,5} Ng7 {-0,15/6 0,7} 23. c4 {+3,71/8 1,5}
bxc4 {-0,15/6 1,0} 24. Cf3 {+3,75/7 1,5} Ne6 {+0,27/5 0,7} 25. Kg1
{+2,59/6 1,5} Nc5 {+0,96/6 1,2} 26. Bc2 {+1,89/8 1,5} Nxb3 {+0,94/6 1,2}
27. Bxb3 {+1,74/8 1,5} cxb3 {+1,00/6 0,7} 28. Qxb3 {+1,90/8 1,5} Ag6
{+1,16/5 1,2} 29. Qc4 {+1,81/6 1,5} Ca5 {+1,25/6 0,7} 30. Qe2 {+1,63/7 1,5}
Ba6 {+1,82/6 0,7} 31. Qe1 {+1,24/8 1,5} Ad3 {+1,85/5 0,6} 32. e6
{+2,25/8 1,5} Bd4+ {-1,02/7 1,3} 33. Cxd4 {+2,27/8 1,5} Axe1 {-1,30/7 1,4}
34. exd7+ {+2,11/9 1,5} Kxd7 {-1,31/7 0,7} 35. Rxe1 {+2,10/9 1,5} Kc8
{-2,33/8 4} 36. Re7 {+2,76/10 1,5} Cc4 {-1,49/8 3} 37. Cxc4 {+2,48/9 1,5}
Bxc4 {-0,99/8 0,7} 38. Rc7+ {+1,73/12 1,5} Kd8 {-0,99/7 0,7} 39. Rxc6
{+1,51/12 1,5} Be2 {-1,20/8 1,1} 40. a3 {+1,86/10 1,5} Bxg4 {-1,04/7 0,5}
41. Kg2 {+1,84/11 1,5} b5 {-1,24/7 0,8} 42. Rb6 {+1,88/10 1,5} Bd7
{-1,28/7 2,2} 43. Rd1 {+1,93/8 1,5} Re8 {-1,20/6 1,1} 44. Nf2 {+1,64/8 1,5}
Re6 {-1,12/7 1,9} 45. Nd3 {+2,08/8 1,5} Re2+ {-1,02/7 0,9} 46. Kf3
{+2,24/9 1,5} Rc2 {-1,01/7 0,9} 47. Ne5 {+2,14/8 1,5} Be8 {-1,00/7 2,1} 48.
Rd5 {+2,00/7 1,5} Rxh2 {-0,55/7 1,6} 49. Bb8+ {+1,80/8 1,5} Ke7 {-0,85/8 3}
50. Ng6+ {+1,89/9 1,5} fxg6 {-0,74/9 1,3} 51. Bxh2 {+1,96/9 1,5} Rxa3+
{-0,76/10 1,5} 52. Ke4 {+1,97/10 1,5} Ra4+ {-0,71/9 1,1} 53. Rd4
{+1,95/11 1,5} Rxd4+ {-0,73/9 0,7} 54. Kxd4 {+2,08/13 1,5} j5 {-0,78/9 1,0}
55. Kd5 {+2,16/12 1,5} i6 {-0,82/9 1,0} 56. Bd6+ {+2,72/14 1,5} Kf7
{-1,60/10 0,7} 57. Rb7+ {+2,79/14 1,5} Kg8 {-1,69/10 1,0} 58. Ri7
{+2,96/13 1,5} Bf7+ {-2,56/11 1,1} 59. Ke5 {+3,17/14 1,5} Bc4
{-2,64/10 0,9} 60. Kf6 {+3,25/14 1,5} Bd3 {-2,66/10 0,9} 61. Rxi6
{+3,22/15 1,5} Kh7 {-2,73/10 0,7} 62. Rj6 {+3,21/15 1,5} Bf5 {-2,76/9 0,8}
63. Rxj5 {+3,22/14 1,5} Ki6 {-2,86/9 0,8} 64. Rj8 {+3,62/14 1,5} g4
{-2,89/9 0,9} 65. Rb8 {+3,64/12 1,5} Bd3 {-2,89/9 1,2} 66. Be5
{+3,63/13 1,5} Kh7 {-2,84/9 1,4} 67. Rd8 {+3,71/12 1,5} Bc2 {-3,61/10 1,8}
68. Rd2 {+4,28/12 1,5} Be4 {-3,60/10 1,7} 69. Rd7+ {+4,29/13 1,5} Ki6
{-3,71/10 1,5} 70. Rd4 {+4,40/14 1,5} Bf5 {-3,71/10 1,3} 71. Rb4
{+4,43/14 1,5} Ki5 {-3,77/10 2,1} 72. j3 {+4,49/13 1,5} h5 {-3,75/10 1,6}
73. Bg3+ {+4,60/14 1,5} Kh6 {-3,86/10 1,2} 74. Rxb5 {+4,62/14 1,5} Kh7
{-4,12/10 2,4} 75. Ke5 {+4,68/14 1,5} Bd3 {-3,88/10 2,2} 76. Rb7+
{+4,71/13 1,5} Ki6 {-3,84/10 1,9} 77. Bf4 {+4,76/13 1,5} Bf5 {-3,82/9 1,0}
78. Kd5 {+4,79/14 1,5} Kj6 {-3,87/10 2,3} 79. Kc4 {+4,80/12 1,5} Ki5
{-3,78/9 0,8} 80. Ri7+ {+4,78/11 1,5} Kj6 {-3,92/10 0,9} 81. Ri8
{+4,78/11 1,5} g5 {-3,69/10 5} 82. Rj8+ {+4,67/12 1,5} Ki6 {-3,76/10 1,0}
83. Bg3 {+4,65/13 1,5} Ki7 {-3,87/10 1,7} 84. Rf8 {+4,70/12 1,5} Bg6
{-3,85/9 1,2} 85. Kd5 {+4,70/12 1,5} h4 {-3,85/9 1,6} 86. ixh4
{+4,66/13 1,5} gxh4 {-3,82/11 1,1} 87. Bxh4 {+4,66/12 1,5} Bxj3
{-3,79/11 1,8} 88. Ke4 {+4,67/10 1,5} Bh1+ {-3,61/11 0,8} 89. Kf5
{+4,70/12 1,5} Bf3 {-3,61/11 1,3} 90. Kg5 {+4,75/14 1,5} Kh7 {-3,76/11 0,9}
91. Kh5 {+5,03/14 1,5} Kg7 {-3,80/12 1,1} 92. Bi5+ {+5,09/14 1,5} Kh7
{-3,90/12 1,1} 93. Rf6 {+5,07/14 1,5} Be2 {-3,90/12 0,9} 94. Rf7+
{+5,14/13 1,5} Ki8 {-3,93/11 1,4} 95. Bg3 {+5,22/14 1,5} Kh8 {-3,90/11 1,3}
96. Kh6 {+5,36/13 1,5} Kg8 {-8,00/11 1,1} 97. Rg7+ {+5,87/13 1,5} Kf8
{-8,19/11 1,2} 98. Bd6+ {+8,65/16 1,5} Ke8 {-8,26/12 1,4} 99. Re7+
{+8,70/16 1,5} Kd8 {-8,26/11 0,8} 100. Rxe2 {+8,63/16 1,5} Kd7
{-8,26/12 1,1} 101. Bg3 {+8,76/12 1,5} Kc6 {-8,30/12 1,2} 102. Re4
{+8,75/10 1,5} Kd5 {-8,29/13 2,0} 103. Rxg4 {+8,82/12 1,5} Kc6
{-8,38/12 0,8} 104. Rg5 {+9,00/10 1,5} Kd7 {-8,36/13 1,4} 105. Rg6
{+9,03/10 1,5} Kc8 {-1000,09/13 2,3} 106. Rg7 {+9,28/11 1,5} Kd8
{-1000,05/15 1,1} 107. Bf4 {+9,31/11 1,5} Kc8 {-1000,04/16 0,9} 108. Rj7
{+9,37/11 1,5} Kd8 {-1000,05/14 0,9} 109. Rc7 {+9,35/11 1,5} Ke8
{-1000,04/21 0,8} 110. Bg5 {+9,38/11 1,5} Kf8 {-1000,03/28 0,1} 111. Kh7
{+104,85/7 0,1} Ke8 {-1000,02/28 0,1} 112. Kg6 {+104,85/4 0,1} Kf8
{-1000,01/28 0,1} 113. Rc8# {+104,85/2 0,1}
{Xboard adjudication: Checkmate} 1-0