This is the beginnings of a chess engine implemented in Go. I am a mediocre chess player and a mediocre programmer, so I have very low expectations for it. My main motivation behind the project is to improve my knowledge of Golang and try to learn how to write high-quality, performant, idiomatic code. If I make something cool in the process, that's a huge bonus.
Initialise standard starting positionstandard pawn move generation- en passant move generation
- sliding piece move generation
- knight move generation
- castling move generation
- implement Perft
- output UCI
- search
- eval
If you're interested in chess programming, the chess programming wiki is invaluable. It is my primary source of information for writing this engine, and all the techniques I've implemented are described on the wiki.