https://github.com/user0332/gianmarcochess
A UCI compatible chess engine written in C#
https://github.com/user0332/gianmarcochess
chess chess-engine csharp dotnet lichess lichess-bot lichess-bot-engine python python3 uci uci-engine
Last synced: 5 days ago
JSON representation
A UCI compatible chess engine written in C#
- Host: GitHub
- URL: https://github.com/user0332/gianmarcochess
- Owner: User0332
- License: mit
- Created: 2023-08-29T18:23:40.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-09T23:27:50.000Z (over 1 year ago)
- Last Synced: 2025-09-10T07:39:26.352Z (29 days ago)
- Topics: chess, chess-engine, csharp, dotnet, lichess, lichess-bot, lichess-bot-engine, python, python3, uci, uci-engine
- Language: C#
- Homepage:
- Size: 109 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GianMarco
A work-in-progress UCI-compatible chess engine written in C# utilizing a search-and-eval strategy. This project uses modified code from Sebastian Lague's `ChessChallenge.Chess` and `ChessChallenge.API` namespaces. Play the bot on lichess ([@GianMarcoChessBot](https://lichess.org/@/GianMarcoChessBot))!
## Todo
- Add more pruning techniques for increased depth
- Look into why initial evals comes out to ~275 cp - IMPORTANT
- Fix bugs in move line generation - IMPORTANT
- Fix endgme checkmates (problem found w/ king & queen vs. king -- finds forced checkmate sequence but loses the sequence on the next few moves)
- Add pondering
- Maybe - add bias against draw (by modifying (`GianMarco.Evaluation.Constants.DrawValue`))
- Add eval that encourages bot to develop pieces
- Add eval for rooks
- Rooks on open files
- Doubled rooks (and queens)
- Increase rook weight in endgame
- Maybe add specialized endgame puzzle evals (e.g. if its endgame and its rook & king vs king, have a more specialized eval for checkmate)
- Add opposition eval for king endgame
- Also add king vs pawn vs king eval
- Add pruning to not search big sacrifices when a depth of 5+ (or some other arbitrary number) after the sac will not be searched
- Allow transposition table to have rotated boards
- Have bias against moving king in opening## Changelog -- Discontinued
- Started late (started 9/1/23, not all changes from 9/1/23 are listed)
- 9/1/23 - Added search extension for checks
- 9/1/23 - Included quiescence & extension search depth in final depth output
- 9/1/23 - Added node count
- 9/1/23 - Added increased pawn evaluation (passed pawn, isolated pawn, stacked pawn)
- 9/2/23 - Added larger depth extensions for endgames
- 9/2/23 - Added outpost eval (still need to test in addition to passed pawn)
- 9/2/23 - Added positional eval
- 9/2/23 - Added move lines (for full PV searched)
- 9/3/23 - Used move lines for more alpha-beta pruning
- 9/3/23 - Added null move pruning
- 9/4/23 - Removed move lines for alpha-beta pruning (as they gave no benefit and move lines are bugged)
- 9/4/23 - Removed null move pruning as it caused the bot to blunder pieces (possibly due to low search depths)
- 9/7/23 - Fix bug in black passed pawn evaluation bitmask