Blobfish is a command-line only chess engine, but you can plug it into a GUI or lichess.
- Human vs AI move discrimination: using statistical models classify moves as engine or human; using this to play more like a human
- Training a neural net with Monte-Carlo Tree Search
- Support for other chess variants, and Shogi
- UCI compatability (only partially implemented; tested with Lichess-Bot and Cutechess)
- Alpha-beta pruning and Principal Variation Search
- Bitboard move generation
- Outputs principal variation
- Static exchange evaluation
- Late move reduction
- Null move pruning
- Killer heuristic
- Countermove heuristic
- Threefold Repetition detection (though with the transposition table it gets very messy)
- Passes Perft test (this means that the move generator is 100% correct)
Feel free to make a branch.
- Improve evaluation (king safety, ML tuning)
- Improve hash table eviction policy
- Look into parallel search
- Optimize move generation (magic BB, partial movegen) and legality checking (xrays, pins, etc)
- Late move pruning and move ordering concerns
- Create testing/benchmark suite6. Resolve exit during search issues
- Resolve exit during search issues and time management
- Aspiration windows and/or fail-soft
- Improve quiescience search
- Test if different random seeds improve hash table performance
- Complete implementation of UCI interface (pondering, etc)
- Look at MCTS / alternative search algorithms