A. M. DeWitt wrote on Tue, Jul 16, 2024 01:20 PM UTC:
There's a visual bug with CountRoyals() where it counts a piece with the protected/counterStrike property as royal if there are no true royals of the same color on the board. This probably has something to do with how values in the royalness array are interpreted within the function.
As per your recommendations, I did some testing with the AI, and I encountered a bug where the counter-strike rule is not being followed by the AI at all.
There's a visual bug with CountRoyals() where it counts a piece with the protected/counterStrike property as royal if there are no true royals of the same color on the board. This probably has something to do with how values in the royalness array are interpreted within the function.
As per your recommendations, I did some testing with the AI, and I encountered a bug where the counter-strike rule is not being followed by the AI at all.
Case 1: Normal pieces
1. Nh5 Ne8 2. Ni7 Nd6 3. Ixd6
Responds with 3... Ixi7
Case 2-5: Multi-movers
1. e5 h8 2. De4 Dh9 3. Df5 Dg8 4. Dxf9+ Dxg4+ 5. +Dg8 +Df5 6. +Dh9 +De4 7. Gd2 Gi11 8. Ke1 Kh12
Case 2: Normal move
9. +Dxg10
Responds with 9... +Dxf3xe2
Case 3: Igui
9. +Dxg10xh9
Responds with 9... +Dxf3xg2
Case 4: Double capture, Lion captured on first move
9. +Dxg10xf11
Responds with 9... +Dxf3xg2
Case 5: Double capture, Lion captured on second move
9. +Dxi8 +Dxd5 10. He4 Hh9 11. +Dxh9xg10
Responds with 11... +Dxe4xf3
Case 6: Capturing two Lions
1. f5 g8 2. Of4 Og9 3. Of6 Og7 4. Of8 Og5 5. Og9+ Of4+ 6. +Og7 +Of6 7. +Og6 +Of7 8. +Of4 +Og9 9. h5 e8 10. Hxd8 Hxi5 11. He9+ Hh4+ 12. +Hf8 +Hg5 13. +Hxg8 +Hxf5 14. Gd2 Gi11 15. Ke1 Kh12 16. +Hxg9xg10
Responds with 16... +Hxf4xf3
Case 7: Kirin promotion exception
1. f5 g8 2. Of4 Og9 3. Of6 Og7 4. Of8 Og5 5. Ne5 Nh8 6. Og9 Of4 7. Oxh8+
Responds with 7... Oxe5+