First, thanks for the awesome library! I'm using it to write a toy chess engine.
Then, this PR:
Position.Update is useful for game engines when also using the ValidMoves method as it skips redundant validation. It would also be useful to add support for nil move to make it act like passing is a thing in chess.
This could be used in the context of implementing null move pruning or in quiescence search to check if not capturing is better than capturing.
Currently, when passed nil Position.Update panics. The proposal is that when passed nil, it returns the same position with the opposite turn.
First, thanks for the awesome library! I'm using it to write a toy chess engine.
Then, this PR:
Position.Update
is useful for game engines when also using theValidMoves
method as it skips redundant validation. It would also be useful to add support for nil move to make it act like passing is a thing in chess.This could be used in the context of implementing null move pruning or in quiescence search to check if not capturing is better than capturing.
Currently, when passed nil
Position.Update
panics. The proposal is that when passed nil, it returns the same position with the opposite turn.