Official Release of OliThink 5.7.5 including a Java-GUI

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

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by Dann Corbit »

Tiny Terror Trounces Titans!
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.
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh »

OliverBr wrote: Thu Sep 10, 2020 1:45 am Hello together,
OliThink 5.7.5 has been released and there are some news about it.

- The strength is gaining while code size/complexity is shrinking. 1603 lines of code (45kbyte) with an ELO of almost 2700.
- Executables for Mac64, Linux64 and Win64
- There is an Java Version.
- There is a simple GUI for the Java Version in order to play OliThink "out-of-the-box":

Image

- In order to use this GUI: http://brausch.org/home/chess/OliThinkGUI.jar
(Download, Keep (!) and start with "java -jar OliThinkGUI.jar". Depending on your security settings, you may just double-click the jar-file.)
. It has no pondering and about 1sec/move time, so it won't take much of your computer's resources.
- This Java GUI has less than 200 lines of code and hasn't been changed sind 2009: https://github.com/olithink/olithink5Ja ... Frame.java


PS: A short gauntlet tournament with the C-Version:

Code: Select all

   # PLAYER                   :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 Scorpio_2.8.8 MCTS+NN    :      25     28   268.0     500  53.6  225   86  189  17.2      65
   2 Fruit 2.1                :      18     28   262.5     500  52.5  213   99  188  19.8      89
   3 OliThink 5.7.5           :       0   ----  1084.5    2000  54.2  893  383  724  19.1     100
   4 K2 v.087                 :     -44     28   218.5     500  43.7  158  121  221  24.2     100
   5 Arasan 11.7              :    -122     28   166.5     500  33.3  128   77  295  15.4     ---

White advantage = -0.18 +/- 7.26
Draw rate (equal opponents) = 19.57 % +/- 0.90

Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr »

maksimKorzh wrote: Sat Sep 19, 2020 1:04 pm Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...
Thank you very much.

The GUI is a very simple. tiny Java program, 200 lines of code. It was done in a matter of few hours. Of course there are not many options in this GUI.
Originally you could play OliThink directly in my homepage, but Java Applets are considered a security risk nowadays.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh »

OliverBr wrote: Sat Sep 19, 2020 1:52 pm
maksimKorzh wrote: Sat Sep 19, 2020 1:04 pm Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...
Thank you very much.

The GUI is a very simple. tiny Java program, 200 lines of code. It was done in a matter of few hours. Of course there are not many options in this GUI.
Originally you could play OliThink directly in my homepage, but Java Applets are considered a security risk nowadays.
I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much

I had to port the poor and buggy C version of this "engine" (a very tiny program, inspired by MicroMax by HGM) to achieve that.
But the other option might be creating a web based UCI GUI so the engine could run remotely on a server and controlled from the browser.
Well, obviously this is pretty expensive assuming dynamic billing like in case of AWS EC2.

But probably someone has obviously done something like that before right?
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr »

maksimKorzh wrote: Sat Sep 19, 2020 2:05 pm I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much
This is really great! I love it. I would love to have my engine playable online (again). But Javascript (or even typescript) is quite difficult to translate from C (Here is a fine example that Java and JavaScript are very different program languages).

I would like to present a game. A few weeks ago, I have got a 32 core server and I started developing OliThink with the server. As all my tests go with cutechess-cli I didn't watch any OliThink game for a long time.
Now I let 5.7.9 play against Glaurung 2.1 - 4 CPU on my notebook and I am really stunned. OliThink playing very precise now and a really intriguing style of play. For those who are interested:, Glaurung trades two knights for a rook and then we see that two bishops are actually better than one rook.
[pgn]
[Event "Computer Chess Game"]
[Site "Olivers-MacBook-2.local"]
[Date "2020.09.19"]
[Round "-"]
[White "OliThink 5.7.9"]
[Black "Glaurung 2.1"]
[Result "1-0"]
[TimeControl "40/60"]
[Annotator "8. -0.12 14... -0.01"]

1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. Qc2 O-O 5. a3 Bxc3+ 6. Qxc3 b6 7. Bg5 Bb7
8. Nf3 {-0.12/15 1.1} d6 9. e3 {+0.02/17 1.2} Nbd7 10. Bd3 {+0.01/17 1.1}
c5 11. O-O {+0.21/14 1.3} Bxf3 12. gxf3 {+0.32/15 1.5} h6 13. Bh4
{+0.31/15 1.1} Qc7 14. b3 {+0.36/15 1.2} Rac8 {-0.01/13 4} 15. Bg3
{+0.39/14 2.2} Qc6 {+0.09/14 2.2} 16. Kg2 {+0.42/15 1.3} Rfd8 {+0.29/14 4}
17. Rfe1 {+0.50/13 1.2} cxd4 {+0.31/14 1.9} 18. exd4 {+0.53/18 2.1} Nh5
{+0.23/14 0.9} 19. Qd2 {+0.55/15 1.3} Ndf6 {+0.29/14 2.5} 20. b4 Re8
{+0.23/12 2.6} 21. a4 {+0.79/16 1.5} Red8 {+0.01/12 1.6} 22. h4
{+0.75/16 1.5} Qd7 {-0.07/12 2.3} 23. Red1 {+0.83/16 0.1} Qb7
{+0.25/13 2.1} 24. a5 {+0.87/17 2.2} Qd7 {-0.05/13 1.4} 25. Ra3 {+0.80/17}
b5 {+0.00/14 2.1} 26. cxb5 {+0.86/16 2.1} Nd5 {-0.03/14 1.9} 27. b6
{+0.82/15 0.2} axb6 {-0.07/14 2.0} 28. a6 {+0.77/18 0.2} Rc7 {-0.11/14 2.6}
29. b5 {+0.65/16 1.5} Rdc8 {-0.03/14 2.6} 30. Kg1 {+0.64/16 5} Nhf6
{+0.00/15 1.5} 31. Rda1 {+0.80/17 4} Qe7 {+0.00/16 2.4} 32. Re1
{+0.77/15 1.8} Qd7 {+0.00/17 0.3} 33. Rb1 {+0.77/16 2.1} Qd8 {-0.11/15 6}
34. Raa1 {+0.77/18 1.9} Nc3 {-0.07/16} 35. Rb3 {+0.78/19 2.6} Ncd5
{-0.21/14 1.4} 36. Rb2 {+0.77/18 4} Nc3 {-0.27/16} 37. Ra3 {+0.76/17 1.9}
Nfd5 {-0.29/15 1.3} 38. Kg2 {+0.84/17 0.7} Kf8 {-0.47/14 3} 39. a7
{+0.95/17 1.6} Ra8 {-0.60/15 2.1} 40. Rbb3 {+0.95/20 0.4} Rcxa7
{-0.58/15 1.7} 41. Rxa7 {+1.03/20 1.6} Rxa7 {-0.66/17 1.5} 42. Rxc3
{+1.01/20 0.3} Nxc3 {-0.72/17 4} 43. Qxc3 d5 {-0.62/16 1.6} 44. Qc6
{+1.02/21 2.1} Kg8 {-0.78/15 1.9} 45. Bf4 {+1.02/19 0.3} Rd7 {-0.86/16 2.4}
46. h5 {+1.08/19 1.3} Ra7 {-0.80/16 2.2} 47. Kf1 {+1.12/21 2.0} Ra1+
{-0.92/15 1.7} 48. Ke2 {+1.17/23} Ra2+ {-0.98/16 1.9} 49. Ke3
{+1.14/20 1.3} Ra7 {-1.15/16 0.6} 50. Be5 {+1.07/20 1.4} Kh8 {-1.43/16 2.2}
51. Bd6 {+1.09/19 2.9} Rd7 {-1.37/16 1.7} 52. Bb4 {+1.13/23 1.4} Kg8
{-1.45/17 1.7} 53. f4 {+1.07/20 1.1} Ra7 {-1.45/17 1.0} 54. Bd6
{+1.17/19 1.4} Rd7 {-1.60/16 1.7} 55. Be5 {+1.17/20 0.5} Ra7 {-1.68/16 1.0}
56. Kf3 {+1.33/17 1.6} Ra3 {-1.52/16 2.2} 57. Bc7 {+1.48/23 0.8} Rxd3+
{-1.13/16 0.6} 58. Ke2 {+1.10/22 2.8} Qh4 {-1.00/17} 59. Kxd3
{+0.84/19 1.4} Qxh5 {-1.00/16 0.1} 60. Kc3 {+0.88/19 1.4} Qd1
{+0.00/16 1.7} 61. Qa8+ {+1.21/20 1.3} Kh7 {+0.00/18} 62. Qa2
{+1.17/20 1.7} Qe1+ {+0.00/16 1.1} 63. Qd2 {+1.46/23 3} Qa1+ {+0.00/16} 64.
Qb2 {+1.35/21 1.7} Qa5+ {-0.74/15 1.7} 65. Kd3 {+1.74/17 1.1} g6
{-0.84/16 0.7} 66. Ke2 {+1.74/19 1.3} Kg7 {-0.92/16 0.3} 67. f3
{+1.71/17 1.4} Kf8 {-0.94/15 1.8} 68. Bd6+ {+1.62/19 3} Kg7 {-0.98/18} 69.
Ba3 {+1.72/20 1.6} Qa7 {-0.84/15 1.5} 70. Kf2 {+1.88/21 0.4} Qb8
{-1.03/16 1.8} 71. Qd2 {+2.04/19 0.1} Qc7 {-1.05/16 1.9} 72. Kg3
{+2.13/21 1.5} g5 {-1.37/16 1.0} 73. Qc1 {+2.24/20 2.6} Qb8 {-1.58/16} 74.
Bb4 {+2.35/20 4} Kg6 {-1.66/16 1.0} 75. Bd2 {+2.39/19 0.7} Qd6
{-1.68/16 1.8} 76. Kg4 {+2.45/18 0.3} gxf4 {-2.09/15 3} 77. Bxf4
{+2.81/20 1.8} Qb4 {-2.94/16 1.8} 78. Qg1 {+2.87/21 0.4} Qe7 {-3.31/17 3}
{Black resigns} 1-0

[/pgn]

Funny fact: When analyzing this game with Stockfish 11 in most cases Stockfish and Glaurung share their opinion about the best move. :)
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh »

OliverBr wrote: Sat Sep 19, 2020 10:58 pm
maksimKorzh wrote: Sat Sep 19, 2020 2:05 pm I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much
This is really great! I love it. I would love to have my engine playable online (again). But Javascript (or even typescript) is quite difficult to translate from C (Here is a fine example that Java and JavaScript are very different program languages).

I would like to present a game. A few weeks ago, I have got a 32 core server and I started developing OliThink with the server. As all my tests go with cutechess-cli I didn't watch any OliThink game for a long time.
Now I let 5.7.9 play against Glaurung 2.1 - 4 CPU on my notebook and I am really stunned. OliThink playing very precise now and a really intriguing style of play. For those who are interested:, Glaurung trades two knights for a rook and then we see that two bishops are actually better than one rook.
[pgn]
[Event "Computer Chess Game"]
[Site "Olivers-MacBook-2.local"]
[Date "2020.09.19"]
[Round "-"]
[White "OliThink 5.7.9"]
[Black "Glaurung 2.1"]
[Result "1-0"]
[TimeControl "40/60"]
[Annotator "8. -0.12 14... -0.01"]

1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. Qc2 O-O 5. a3 Bxc3+ 6. Qxc3 b6 7. Bg5 Bb7
8. Nf3 {-0.12/15 1.1} d6 9. e3 {+0.02/17 1.2} Nbd7 10. Bd3 {+0.01/17 1.1}
c5 11. O-O {+0.21/14 1.3} Bxf3 12. gxf3 {+0.32/15 1.5} h6 13. Bh4
{+0.31/15 1.1} Qc7 14. b3 {+0.36/15 1.2} Rac8 {-0.01/13 4} 15. Bg3
{+0.39/14 2.2} Qc6 {+0.09/14 2.2} 16. Kg2 {+0.42/15 1.3} Rfd8 {+0.29/14 4}
17. Rfe1 {+0.50/13 1.2} cxd4 {+0.31/14 1.9} 18. exd4 {+0.53/18 2.1} Nh5
{+0.23/14 0.9} 19. Qd2 {+0.55/15 1.3} Ndf6 {+0.29/14 2.5} 20. b4 Re8
{+0.23/12 2.6} 21. a4 {+0.79/16 1.5} Red8 {+0.01/12 1.6} 22. h4
{+0.75/16 1.5} Qd7 {-0.07/12 2.3} 23. Red1 {+0.83/16 0.1} Qb7
{+0.25/13 2.1} 24. a5 {+0.87/17 2.2} Qd7 {-0.05/13 1.4} 25. Ra3 {+0.80/17}
b5 {+0.00/14 2.1} 26. cxb5 {+0.86/16 2.1} Nd5 {-0.03/14 1.9} 27. b6
{+0.82/15 0.2} axb6 {-0.07/14 2.0} 28. a6 {+0.77/18 0.2} Rc7 {-0.11/14 2.6}
29. b5 {+0.65/16 1.5} Rdc8 {-0.03/14 2.6} 30. Kg1 {+0.64/16 5} Nhf6
{+0.00/15 1.5} 31. Rda1 {+0.80/17 4} Qe7 {+0.00/16 2.4} 32. Re1
{+0.77/15 1.8} Qd7 {+0.00/17 0.3} 33. Rb1 {+0.77/16 2.1} Qd8 {-0.11/15 6}
34. Raa1 {+0.77/18 1.9} Nc3 {-0.07/16} 35. Rb3 {+0.78/19 2.6} Ncd5
{-0.21/14 1.4} 36. Rb2 {+0.77/18 4} Nc3 {-0.27/16} 37. Ra3 {+0.76/17 1.9}
Nfd5 {-0.29/15 1.3} 38. Kg2 {+0.84/17 0.7} Kf8 {-0.47/14 3} 39. a7
{+0.95/17 1.6} Ra8 {-0.60/15 2.1} 40. Rbb3 {+0.95/20 0.4} Rcxa7
{-0.58/15 1.7} 41. Rxa7 {+1.03/20 1.6} Rxa7 {-0.66/17 1.5} 42. Rxc3
{+1.01/20 0.3} Nxc3 {-0.72/17 4} 43. Qxc3 d5 {-0.62/16 1.6} 44. Qc6
{+1.02/21 2.1} Kg8 {-0.78/15 1.9} 45. Bf4 {+1.02/19 0.3} Rd7 {-0.86/16 2.4}
46. h5 {+1.08/19 1.3} Ra7 {-0.80/16 2.2} 47. Kf1 {+1.12/21 2.0} Ra1+
{-0.92/15 1.7} 48. Ke2 {+1.17/23} Ra2+ {-0.98/16 1.9} 49. Ke3
{+1.14/20 1.3} Ra7 {-1.15/16 0.6} 50. Be5 {+1.07/20 1.4} Kh8 {-1.43/16 2.2}
51. Bd6 {+1.09/19 2.9} Rd7 {-1.37/16 1.7} 52. Bb4 {+1.13/23 1.4} Kg8
{-1.45/17 1.7} 53. f4 {+1.07/20 1.1} Ra7 {-1.45/17 1.0} 54. Bd6
{+1.17/19 1.4} Rd7 {-1.60/16 1.7} 55. Be5 {+1.17/20 0.5} Ra7 {-1.68/16 1.0}
56. Kf3 {+1.33/17 1.6} Ra3 {-1.52/16 2.2} 57. Bc7 {+1.48/23 0.8} Rxd3+
{-1.13/16 0.6} 58. Ke2 {+1.10/22 2.8} Qh4 {-1.00/17} 59. Kxd3
{+0.84/19 1.4} Qxh5 {-1.00/16 0.1} 60. Kc3 {+0.88/19 1.4} Qd1
{+0.00/16 1.7} 61. Qa8+ {+1.21/20 1.3} Kh7 {+0.00/18} 62. Qa2
{+1.17/20 1.7} Qe1+ {+0.00/16 1.1} 63. Qd2 {+1.46/23 3} Qa1+ {+0.00/16} 64.
Qb2 {+1.35/21 1.7} Qa5+ {-0.74/15 1.7} 65. Kd3 {+1.74/17 1.1} g6
{-0.84/16 0.7} 66. Ke2 {+1.74/19 1.3} Kg7 {-0.92/16 0.3} 67. f3
{+1.71/17 1.4} Kf8 {-0.94/15 1.8} 68. Bd6+ {+1.62/19 3} Kg7 {-0.98/18} 69.
Ba3 {+1.72/20 1.6} Qa7 {-0.84/15 1.5} 70. Kf2 {+1.88/21 0.4} Qb8
{-1.03/16 1.8} 71. Qd2 {+2.04/19 0.1} Qc7 {-1.05/16 1.9} 72. Kg3
{+2.13/21 1.5} g5 {-1.37/16 1.0} 73. Qc1 {+2.24/20 2.6} Qb8 {-1.58/16} 74.
Bb4 {+2.35/20 4} Kg6 {-1.66/16 1.0} 75. Bd2 {+2.39/19 0.7} Qd6
{-1.68/16 1.8} 76. Kg4 {+2.45/18 0.3} gxf4 {-2.09/15 3} 77. Bxf4
{+2.81/20 1.8} Qb4 {-2.94/16 1.8} 78. Qg1 {+2.87/21 0.4} Qe7 {-3.31/17 3}
{Black resigns} 1-0

[/pgn]

Funny fact: When analyzing this game with Stockfish 11 in most cases Stockfish and Glaurung share their opinion about the best move. :)
Sorry, but I need to disagree that porting engine from C to JS is difficult
Here I have C and JS versions of the "engine" you've seen:

C: https://github.com/maksimKorzh/bmcp/blo ... ommented.c
JS: https://github.com/maksimKorzh/bmcp_js/ ... ne/bmcp.js

Also VICE has JS port and even stockfich.
I would LOVE to play JS version of OliThink online

re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr »

maksimKorzh wrote: Sat Sep 19, 2020 11:48 pm Sorry, but I need to disagree that porting engine from C to JS is difficult
You might be correct, I will try to have a look into it.
re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.
Here comes the OliThink "speciality".
OliThink doesn't know anything about "king safety", "king shelter" or even double pawns. The complete evaluation is based on just mobility (there are some rare exception like passed pawn).*

If you have a look at the code, there is not a single square table, everything is generic. OliThink has no chess knowledge except rules and mobility.

The mobility evaluation ist quite simple, too. It's not even considering if a square are controlled by the enemy. This may an idea for improvement.

PS: Neither Leela nor Stockfish would have exchanged on f3. Leela plays rather 11...Rc8 and Stockfish 11...h6 (later 11...Rc8).
For Leela the first mistakes were 28...Rb7 instead of 28...f5 and the next move 29...Rdc8 instead of 29...f5 again.
Leela urgently wants to play ...f5! on several other occasions, too.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh »

OliverBr wrote: Sun Sep 20, 2020 12:05 am
maksimKorzh wrote: Sat Sep 19, 2020 11:48 pm Sorry, but I need to disagree that porting engine from C to JS is difficult
You might be correct, I will try to have a look into it.
re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.
Here comes the OliThink "speciality".
OliThink doesn't know anything about "king safety", "king shelter" or even double pawns. The complete evaluation is based on just mobility (there are some rare exception like passed pawn).*

If you have a look at the code, there is not a single square table, everything is generic. OliThink has no chess knowledge except rules and mobility.

The mobility evaluation ist quite simple, too. It's not even considering if a square are controlled by the enemy. This may an idea for improvement.

PS: Neither Leela nor Stockfish would have exchanged on f3. Leela plays rather 11...Rc8 and Stockfish 11...h6 (later 11...Rc8).
For Leela the first mistakes were 28...Rb7 instead of 28...f5 and the next move 29...Rdc8 instead of 29...f5 again.
Leela urgently wants to play ...f5! on several other occasions, too.
I love the idea of ONLY mobility evaluation. I will definitely try it out!
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr »

maksimKorzh wrote: Sun Sep 20, 2020 12:24 am I love the idea of ONLY mobility evaluation. I will definitely try it out!
It would be very interesting to know how strong an engine can be with only mobility eval.

PS: I now see that the origin of OliThink 5 was in 2004. Tord (Hands down, one of the best programers ever) was there, too. This is really a long time, 16 years, imagine...
http://www.open-aurec.com/wbforum/viewt ... ?f=4&t=432
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr »

5.8.0 has been released. Here a small tournament with famous names, but ultra quick time control:

Code: Select all

   # PLAYER                     :  RATING  ERROR  POINTS  PLAYED   (%)     W     D     L  D(%)  CFS(%)
   1 Stockfish 11 64            :     752     16  9004.0   10007  90.0  8410  1188   409  11.9     100
   2 Ethereal 12.55 (POPCNT)    :     621     14  7912.0   10005  79.1  7213  1398  1394  14.0     100
   3 Minic 2.16                 :     183     10  3606.0   10005  36.0  2942  1328  5735  13.3     100
   4 Glaurung 2.2               :     119     10  2890.0   10005  28.9  2306  1168  6531  11.7     100
   5 OliThink 5.8.0             :       0   ----  1603.0   10008  16.0  1159   888  7961   8.9     ---

White advantage = 27.74 +/- 2.92
Draw rate (equal opponents) = 23.37 % +/- 0.40
Ethereal was a positive surprise, while Minic a negative one, I would have guessed Ehereal about 520 and Minic about 280.

===========================================================================
Next endeavours for OiThink:

1) Move sorting. It's too simple atm. Noisy moves are ordered by value of the captured piece. Quiet moves are ordered just by one killer and history heuristics.
2) Pruning. Many of the common pruning tricks do not work with OliThink.
3) Mobility evaluation. It's not subtracting point for squares that are (attacked/controlled) by the opponent.
4) More hash: Eval- and Pawnhashs are not efficient, because the Hash probing needs almost as much time as the simple eval-function. Perhaps a KingpawnHash?.
5) Hash-aging: There is no aging yet. Each slot will be overwritten by the next store.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink