This is REALLY NICE well made game! The only thing is that when I try to click on "Easy Mode", it tries to access a scene "Easy Mode.phz" which I do not have.
@CPJChute - (Q1) The buttons were in the scene, but algodoo crashed the moment I added them and decided not to go through all the work again.
(Q3) Legal moves were used, it worked but lagged the scene a lot everytime a move was played. If you want, I can add that feature again (there are definitely everything to fix)
@s_noonan - I used "Na2xb5" as an example because such a move notation would require legal move detection to determine the "a2" part because if this move were ever written it would require that the program determine that other knights on the a-file and 2-rank could move to the "b5" square. Since legal move detection is really slow, I decided not to implement this type of move notation.
I may consider completely deleting this scene and bringing it back in the future with (hopefully) faster move detection, this was just a test. Sorry for the confusion!
I had already attempted to make a chess engine a few times outside of Algodoo, so there was some code to replicate. The hard part was definitely translating all the bitwise operators and objects into Algodoo code, which is hard because it does not support those
The way the pieces snap to the grid was by transforming the cursor position into a square index (a function in the script), and then transforming the square index into a position that is centered on the grid.
For legal move detection, the 0x88 board representation was really helpful because it made out-of-bounds checks much more efficient