IsInCheckmate() and IsDraw() are unusable
IsInCheckmate() and IsDraw() can't be used because the Think function isn't called at the end of the game.
they are meant to be used with board.MakeMove and board.UndoMove
To see an example of a use for IsInCheckmate() look at EvilBot.cs in the MoveIsCheckmate method.
I understand what the original intended use for those methods is, but it would be nice for the bot to be notified when the game has ended to do things like saving a log or trained weights or something. At least for during training.
Ahh, I see. For that case, I would add a call in ChallengeController.EndGame to a temporary cleanup method in MyBot.
That's pretty much what I ended up doing, but since the challenge specifically mentioned machine learning as a possible implementation, it would be a nice feature to have.
Made a quick PR to add this functionality. Does #330 do what you needed? @bbeallo12
Looks good to me.