Page 15 of 25
Re: A complete 2000 lines of code engine
Posted: Mon Jul 29, 2019 11:40 am
by xr_a_y
M ANSARI wrote: ↑Mon Jul 29, 2019 11:13 am
Can I ask what the present number of line the code is now? Would be interesting to see if it can still do well without going over 2000 lines or if 2000 is a number that hurts progress significantly.
There are 3395 real lines of code in a file with 3806 total lines.
Being under 2000 seems not possible or very hard with SMP/Bitboards and including protocol (xboard or uci).
Minic code is still very readable, pushing it under 3000 lines would make not easy to read.
Protocol is around 400 lines
Search is around 600 lines
TB is around 100 lines
Eval is around 300 lines
Material hash thing is about 400 lines
Bitboard & tools 400 lines
Position, tools, ... 1100 lines => some lines can be gained here ...
I can/will get under 3000 used lines if I clean up the code.
Re: A complete 2000 lines of code engine
Posted: Mon Jul 29, 2019 12:23 pm
by JohnWoe
Re: A complete 2000 lines of code engine
Posted: Mon Aug 05, 2019 2:42 pm
by xr_a_y
Recent Gauntlet for Minic dev
Code: Select all
1 zurichess-neuchatel 194 51 168 75.3% 23.2%
2 Winter 143 48 169 69.5% 24.3%
3 Topple 90 46 169 62.7% 26.0%
4 asymptote_v0.6 33 45 170 54.7% 27.1%
5 ruy-1.1.9 0 45 169 50.0% 25.4%
Re: A complete 2000 lines of code engine
Posted: Mon Aug 05, 2019 4:05 pm
by flok
Micah is 1842 lines! With UCI, lazy-SMP, tuning, table-bases!
(but to be honest: it uses libchess & fathom
)
Re: A complete 2000 lines of code engine
Posted: Mon Aug 05, 2019 7:24 pm
by xr_a_y
flok wrote: ↑Mon Aug 05, 2019 4:05 pm
Micah is 1842 lines! With UCI, lazy-SMP, tuning, table-bases!
(but to be honest: it uses libchess & fathom
)
I think it is good to keep the code small and simple.
Minic is still easily readable despite the long lines.
My advice would be to keep Micah this way, especially as it is based on some useful dependency, this is a great opportunity to stay clean as mainly search and eval has to be implemented.
Really hope the next 600 elo won't cost you 1200 lines
Code: Select all
Score of Micah vs minic_dev: 3 - 196 - 8 [0.034]
Elo difference: -582.4 +/- 126.9, LOS: 0.0 %, DrawRatio: 3.9 %
Here is one of the 3 Micah's wins as black successfully pushing a passed pawn! Totally outplaying Minic
(this was short TC 40/20sec and Minic is finding 46. h2h3 only at depth 14 ... only reached depth 13 during the game ... too bad)
[pgn]
[Event "My Tournament"]
[Site "?"]
[Date "2019.08.05"]
[Round "34"]
[White "minic_dev"]
[Black "Micah"]
[Result "0-1"]
[ECO "A00"]
[GameDuration "00:01:02"]
[GameEndTime "2019-08-05T18:56:53.464 CEST"]
[GameStartTime "2019-08-05T18:55:50.743 CEST"]
[Opening "Dunst (Sleipner, Heinrichsen) Opening"]
[PlyCount "132"]
[TimeControl "40/20"]
1. Nc3 {book} Nf6 {book} 2. Nf3 {book} Nc6 {book} 3. e4 {0s} e5 {-0.16/10 0.44s}
4. Bb5 {0s} Nd4 {-0.06/10 0.22s} 5. O-O {0s} Nxb5 {+0.16/11 0.24s} 6. Nxb5 {0s}
c6 {-0.05/12 0.39s} 7. Nc3 {0s} d5 {-0.11/12 0.29s} 8. Nxe5 {+0.49/16 0.33s}
d4 {+0.14/10 0.23s} 9. Ne2 {+1.08/15 0.60s} Nxe4 {+0.01/10 0.47s}
10. d3 {+1.21/16 0.43s} Nf6 {+0.14/11 0.29s} 11. Re1 {+1.14/17 0.37s}
Be7 {+0.18/11 0.47s} 12. Bg5 {+1.13/16 0.62s} O-O {+0.11/10 0.24s}
13. Qd2 {+0.49/14 0.62s} h6 {+0.65/11 0.35s} 14. Bf4 {+0.22/14 0.62s}
c5 {+0.67/9 0.48s} 15. Nc4 {+0.27/15 0.36s} b5 {+1.03/9 0.27s}
16. Ne5 {+0.26/13 0.45s} Bb7 {+1.11/11 0.47s} 17. a4 {+0.37/14 0.63s}
b4 {+1.26/11 0.43s} 18. Ng3 {+0.60/15 0.63s} Re8 {+1.20/10 0.34s}
19. a5 {+0.35/17 0.55s} Qd5 {+1.18/10 0.32s} 20. f3 {+0.22/16 0.43s}
Bd6 {+1.05/10 0.42s} 21. Nc4 {+0.67/20 0.40s} Bf8 {+0.93/11 0.34s}
22. Ne4 {+0.65/11 0.070s} Nxe4 {+0.75/10 0.30s} 23. fxe4 {+0.48/17 0.40s}
Qd7 {+0.90/11 0.31s} 24. a6 {+0.42/14 0.71s} Bc8 {+0.75/12 0.43s}
25. e5 {+0.75/12 0.089s} Re6 {+0.85/12 0.53s} 26. Nd6 {+0.48/16 0.52s}
Qc6 {+0.81/12 0.30s} 27. Bg3 {+0.57/16 0.77s} Bxa6 {+1.17/11 0.34s}
28. Qf2 {+0.21/21 2.2s} f6 {+1.20/11 0.33s} 29. Qf5 {+0.25/15 0.39s}
Bc8 {+1.10/12 0.49s} 30. Nxc8 {+0.25/15 0.67s} Qxc8 {+0.90/12 0.42s}
31. Qf3 {-0.07/15 0.67s} Qd8 {+0.58/11 0.36s} 32. Rf1 {+0.22/17 1.2s}
a5 {+0.84/11 0.46s} 33. Qg4 {+0.36/15 0.61s} Raa6 {+0.92/12 0.44s}
34. Rf5 {+0.12/14 0.61s} a4 {+0.99/10 0.57s} 35. Bh4 {0.00/15 0.60s}
g5 {+1.26/11 0.41s} 36. Bg3 {-0.28/17 0.43s} a3 {+1.35/10 0.51s}
37. bxa3 {-0.28/15 0.65s} bxa3 {+1.79/11 0.40s} 38. Rff1 {-0.68/14 0.65s}
Qe7 {+1.91/12 0.36s} 39. exf6 {-0.52/16 0.45s} Rxf6 {+2.13/12 0.31s}
40. Rfe1 {-0.52/15 0.86s} Qd8 {+2.13/10 0.42s} 41. c4 {-0.99/15 0.45s}
a2 {+2.72/11 0.33s} 42. Re2 {-0.87/15 0.33s} Qb6 {+2.71/10 0.55s}
43. Qe4 {-1.20/15 0.51s} Rf7 {+2.74/10 0.55s} 44. Be5 {-1.30/16 0.51s}
Qb1+ {+3.13/11 0.48s} 45. Re1 {-1.95/14 0.058s} Rb6 {+3.15/11 0.30s}
46. Bd6 {0.00/13 0.051s} Qxa1 {+6.68/13 0.37s} 47. Rxa1 {-8.85/25 2.7s}
Rb1+ {+9.52/14 0.45s} 48. Qe1 {-12.97/27 2.3s} Rxe1+ {+9.45/15 0.55s}
49. Rxe1 {-14.03/25 1.1s} Rb7 {+9.63/15 0.49s} 50. Kf2 {-14.03/27 1.9s}
Rb2+ {+9.65/14 0.53s} 51. Kg3 {-14.35/25 1.7s} Bxd6+ {+9.80/14 0.37s}
52. Kf3 {-14.66/26 0.29s} Rb1 {+10.18/14 0.41s} 53. Re8+ {-14.74/26 0.29s}
Kf7 {+10.18/13 0.58s} 54. Ra8 {-15.19/23 0.29s} a1=Q {+10.57/14 0.43s}
55. Rxa1 {-20.91/28 0.85s} Rxa1 {+11.46/15 0.50s} 56. Kf2 {-20.91/26 0.27s}
Ra3 {+12.11/13 0.36s} 57. h4 {-23.96/32 0.98s} Rxd3 {+13.99/13 0.31s}
58. Ke2 {-38.34/23 1.2s} Re3+ {+15.30/15 0.54s} 59. Kd2 {-M29/8 0.11s}
gxh4 {+15.72/11 0.36s} 60. Kc2 {-27.04/12 0.20s} Bf4 {+22.47/12 0.35s}
61. g4 {-24.00/12 0.20s} hxg3 {+99.80/9 0.33s} 62. Kd2 {-M9/9 0.15s}
g2 {+99.94/11 0.60s} 63. Kd1 {-M7/35 0.11s} g1=Q+ {+99.96/8 0.64s}
64. Kc2 {-M5/121 0.024s} Re2+ {+99.97/8 0.38s} 65. Kb3 {-M5/67 0.015s}
Qb1+ {+99.98/8 0.65s} 66. Ka3 {-M3/121 0.002s}
Qb4# {+99.99/8 0.65s, Black mates} 0-1
[/pgn]
Re: A complete 2000 lines of code engine
Posted: Wed Aug 14, 2019 3:28 pm
by xr_a_y
some recent progress @TC 40/1min 1024M hash (around CCRL40/4), here Minic dev version head to head with various engines
Code: Select all
1 Winter 167 54 143 72.4% 23.1%
2 zurichess-neuchatel 61 50 143 58.7% 26.6%
3 Topple 42 45 142 56.0% 40.1%
4 ruy-1.1.9 -5 48 143 49.3% 28.7%
5 asymptote_v0.6 -7 48 144 49.0% 28.5%
6 minic_0.85 -10 31 143 48.6% 70.6%
7 minic_0.82 -32 37 143 45.5% 58.7%
8 minic_0.76 -34 41 143 45.1% 49.7%
9 minic_0.65 -97 44 144 36.5% 41.0%
Re: A complete 2000 lines of code engine
Posted: Thu Aug 15, 2019 9:50 am
by xr_a_y
Some Windows results, same TC and hash, native VS build
Code: Select all
Rank Name Elo +/- Games Score Draws
0 Minic 18 14 1775 52.6% 27.9%
1 Winter_0.6_New_Windows 99 28 443 63.9% 27.5%
2 Topple_0.7.1 -2 27 444 49.8% 32.0%
3 rofChade 1 -28 28 444 45.9% 26.6%
4 fruit_21 -146 29 444 30.2% 25.7%
1775 of 4000 games finished.
Re: A complete 2000 lines of code engine
Posted: Fri Aug 16, 2019 9:25 am
by xr_a_y
Minic is finally getting >1000 at STS @10sec per position (single core, on quite old hardware) : 1051
still not very smart but that's better.
Re: A complete 2000 lines of code engine
Posted: Tue Aug 27, 2019 8:32 am
by xr_a_y
Minic 0.87 is released, around +30 versus previous.
Code: Select all
Score of minic_0.82 vs minic_0.87: 202 - 299 - 499 [0.452]
Elo difference: -33.8 +/- 15.2, LOS: 0.0 %, DrawRatio: 49.9 %
On my hardware around CCRL 40/4 TC with 1024Mo TT
Code: Select all
Rank Name Elo +/- Games Score Draws
1 Winter 195 21 929 75.5% 25.4%
2 zurichess-neuchatel 148 19 928 70.1% 30.7%
3 Topple 113 19 928 65.7% 29.7%
4 minic_0.87 100 18 929 64.0% 34.0%
5 minic_0.86 91 18 929 62.9% 34.7%
6 minic_dev 90 18 928 62.7% 36.0%
7 minic_0.80 62 19 930 58.9% 32.4%
8 asymptote_v0.6 59 19 928 58.4% 28.4%
9 minic_0.76 42 18 929 56.0% 33.3%
10 ruy-1.1.9 27 19 929 53.8% 27.8%
11 igel_1.8.3 -13 19 930 48.1% 28.4%
12 minic_0.65 -57 19 930 41.9% 28.7%
13 minic_0.47 -67 20 930 40.5% 25.1%
14 redqueen-1.1.98 -74 20 928 39.5% 23.5%
15 minic_0.57 -98 19 928 36.3% 27.5%
16 igel_1.7 -101 20 929 35.9% 26.2%
17 GreKo -162 21 930 28.3% 20.2%
18 Fridolin310 -166 21 929 27.8% 21.9%
19 asymptote-v0.4.2 -202 23 929 23.8% 18.5%
Re: A complete 2000 lines of code engine
Posted: Tue Aug 27, 2019 11:31 am
by Max
Nice progress!
STS test suite shows it too.
Code: Select all
STS engine
-------------------------
..
2624 Zurichess Neuchatel
2610 Fruit 3.21 Reloaded
2595 Minic 0.87
..
2487 Minic 0.82
..
2412 Minic 0.76
2407 DanaSah 6.50
..