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

Popular posts from this blog

Reckless 0.9.0 - new version super strong chess engine

Reckless 0.10.0 - new version super strong chess engine

Torch-4 UCI v 1.01 - new version chess engine

We already have the new Fritz 20 program - what does it look like and how does it work?