notnil / chess

chess package for go
MIT License
508 stars 126 forks source link

Add position.XFENString() #126

Open mikeb26 opened 1 year ago

mikeb26 commented 1 year ago

When working with 3rd party chess APIs these may require positions to be expressed in X-FEN notation rather than FEN. e.g. Notably while some of the lichess.org APIs work with either FEN or X-FEN, some of them require X-FEN. This commit adds position.XFENString() for this purpose. The key difference between X-FEN and FEN is the encoding of the en passant square. X-FEN will only specify it when an opposing pawn is in position to capture, while FEN will always specify it.