You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,15 +71,15 @@ $ dotnet build -c Release
71
71
```
72
72
Version: 0.6
73
73
Size: 708 LOC
74
-
Strength: 2400 ELO
74
+
Strength: 2450 ELO
75
75
```
76
-
[__Version 0.6__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.6) uses an improved transposition table with two buckets and aging. It also adds late move reductions and deep futility pruning. Quiet moves are now sorted based on a simple history heuristic which has a nice synergy with LMR. In total these changes allow MinimalChess to search much deeper (at the cost of accuracy) so that it gains about 200 ELO in playing strength over the previous version.
76
+
[__Version 0.6__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.6) uses an improved transposition table with two buckets and aging. It also adds late move reductions and deep futility pruning. Quiet moves are now sorted based on a simple history heuristic which has a nice synergy with LMR. In total these changes allow MinimalChess to search much deeper (at the cost of accuracy) so that it gains about 200 ELO over the previous version and is listed at [2452 ELO](https://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?eng=MinimalChess%200.5%2064-bit#MinimalChess_0_6_64-bit) on the CCRL.
77
77
78
78
### Version 0.5
79
79
```
80
80
Version: 0.5
81
81
Size: 707 LOC
82
-
Strength: 2268 ELO
82
+
Strength: 2270 ELO
83
83
```
84
84
[__Version 0.5__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.5) adds a 13th tuned table for a mobility-based evaluation term, null-move pruning and a simple transposition table. I also changed the target framework to .NET 5.
85
85
With these changes MinimalChess gains about 350 ELO in playing strength over the previous version and is listed at [2268 ELO](https://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?eng=MinimalChess%200.5%2064-bit#MinimalChess_0_5_64-bit) on the CCRL.
@@ -88,7 +88,7 @@ With these changes MinimalChess gains about 350 ELO in playing strength over the
88
88
```
89
89
Version: 0.4
90
90
Size: 610 LOC
91
-
Strength: 1883 ELO
91
+
Strength: 1890 ELO
92
92
```
93
93
[__Version 0.4__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.4) now uses tapered Piece-Square tables to evaluate positions. It took two weeks of tuning and testing until I found values that could rival [PeSTOs](https://rofchade.nl/?p=307) famous PSTs in strength.
94
94
I also added a [killer heuristic](https://www.chessprogramming.org/Killer_Heuristic) and staged move generation so that MinimalChess does not generate moves which will likely never be played. The resulting speed improvements more than compensate for the slightly more expensive evaluation.
@@ -99,7 +99,7 @@ MinimalChess 0.4.1 is listed at [1883 ELO](http://ccrl.chessdom.com/ccrl/404/cgi
99
99
```
100
100
Version: 0.3
101
101
Size: 641 LOC
102
-
Strength: 1575 ELO
102
+
Strength: 1570 ELO
103
103
```
104
104
[__Version 0.3__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.3) adds MVV-LVA move ordering, Quiescence Search and replaces material-only evaluation with Piece-Square Tables.
105
105
With these changes MinimalChess gains about 500 ELO in playing strength over the previous version and achieved [1571 ELO](http://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?match_length=30&each_game=1&print=Details&each_game=1&eng=MinimalChess%200.3%2064-bit#MinimalChess_0_3_64-bit) on the CCRL.
@@ -109,7 +109,7 @@ This version also introduces a rather unique feature: Sets of PSTs are defined i
109
109
```
110
110
Version: 0.2
111
111
Size: 502 LOC
112
-
Strength: 1059 ELO
112
+
Strength: 1070 ELO
113
113
```
114
114
[__Version 0.2__](https://github.com/lithander/MinimalChessEngine/releases/tag/v0.2) uses Iterative Deepening search with Alpha-Beta pruning. It collects the Principal Variation (PV) and when available plays PV moves first. Other than that there's no move ordering. Positions are evaluated by counting material only. This lack of sophistication causes it to play rather weak at [1059 ELO](http://ccrl.chessdom.com/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=MinimalChess%200.2%2064-bit#MinimalChess_0_2_64-bit) on the CCRL. I tried to the write code to be as simple as possible to both understand and explain. It could be smaller or faster but I doubt it could be much simpler than this version.
0 commit comments