Closed JMSSVLC closed 1 year ago
It is intended the way it currently is. Square.None is a special case since it reflects that the square is not a set square, since the value 0 is Square.A1. The recommended use it to check if a square is None before using it. Fx it is used in regard to EnPassant square in State.
Rank.None and File.None is not really needed since a square with the value Square.None is already an indication that the square is not set.
I have just seen that some of the properties of Square.None are wrong and other ones fire an exception. In particular, File property is "b" and Rank is "9". Maybe File.None and Rank.None should be defined. I am not sure about the penalties in code speed, and if this issue is "on purpose"