Chess engine

Chess engine

I made a chess engine as an independent study, for my last semester. It had some pretty big problems:

  1. Instead of storing information about the moves at a given state, the move generator stored the entire board for every move. This meant that the move generator copied the entire board for every move it generated (very costly).
  2. It was written in objective-c, and instead of using native c function calls, I decided to almost exclusively use message calls. Therefore, every call had a dynamic lookup overhead associated with it.
  3. There was no quiescence search, so the engine would see blunders as strong moves.
  4. The evaluation was strictly based on material, so it didn't have any positional understanding.

Apart from all of these issues, I think I learned a lot from the project, especially on what you should and shouldn't do when writing a chess engine.

I eventually went on to write another slow chess engine in haskell, and eventually a decent chess engine in c.

Filename Size Last Modified 12 kB Apr 08, 2017