Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Chess engine: Midnight v4

 


Midnight - UCI Engines
Author: Archishmaan Peyyety

Elo History
  • Midnight Rating 1500 | 1479/1517: 
  • AlphaBeta pruning
  • Move ordering: MVV-LVA, opponent pawn control, promotions
  • Evaluation: Material, PSTQ, Mopup for endgame
  • Transposition table
  • Midnight v2 Rating 1935 |
  • Adds History Heuristic and Killer Moves
  • Reset Transposition Table only at game start
  • Adds Null Move Pruning
  • Switches from Negamax to Principle Variation Search

File structure
  • ChessEngine contains the C++ chess engine. It produces moves in uci format.
  • ChessEngine/ChessEngine_lib contains the core library including move search and evaluation.
  • ChessEngine/ChessEngine_tests contains the unit tests to verify that function in the lib work as expected. 
  • uci-gui contains a python module that produces a chess gui that a human can play with and interfaces with the chess engine built. Hosted on localhost and built using flask. Most of this is code I took from [here](https://github.com/maksimKorzh/uci-gui). I take no credit for it, just something so that I can play against my engine!

Todo 
  • (Medium Importance) extern in types.h needed?
  • (Medium Importance) Try to use something other than std::vector or at least pre-define memory requirements so we don't resize array every time.
  • Implement Kind end game pstq
  • Fixup History Table, not a global variable [most likely a bug somewhere here]


v.4:
Addresses some tech-debt and gets a drafted Makefile probably not going to work on every system but it's definitely a start. No functional changes to previous version.


Comments