H. G. Muller wrote on Thu, Jul 2, 2020 01:27 PM UTC:
I guess it depends on how one formulates the rules. I saw the special rule that defines these squares as "turns into inaccessible when abandoned, rather than empty". And I also implemented it that way, by replacing board[fromSquare] = 0; in the MakeMove() routine by board[fromSquare] = background[fromSquare], where the background array then could be initialized with empty and inaccessible squares as desired. (Inaccessible squares were already implemented, for the purpose of simulating non-rectangular boards.)
So the rule that you can capture the piece on the brouhaha square was not really an extra rule, as it is normal that you can always capture any piece. It would have required quite some extra code in various places to forbid pieces to enter it (or hop over it) even when a piece was occupying it; every move would have to test the background under the piece as well as the board itself. And it would become even more complex when you had to make exceptions for what the piece on the brouhaha square is forbidden to do compared to its normal capabilities. Especially if this included blocking check.
I guess it depends on how one formulates the rules. I saw the special rule that defines these squares as "turns into inaccessible when abandoned, rather than empty". And I also implemented it that way, by replacing board[fromSquare] = 0; in the MakeMove() routine by board[fromSquare] = background[fromSquare], where the background array then could be initialized with empty and inaccessible squares as desired. (Inaccessible squares were already implemented, for the purpose of simulating non-rectangular boards.)
So the rule that you can capture the piece on the brouhaha square was not really an extra rule, as it is normal that you can always capture any piece. It would have required quite some extra code in various places to forbid pieces to enter it (or hop over it) even when a piece was occupying it; every move would have to test the background under the piece as well as the board itself. And it would become even more complex when you had to make exceptions for what the piece on the brouhaha square is forbidden to do compared to its normal capabilities. Especially if this included blocking check.