Chess Board
Usage:
Click on any row of the gameView portal and click the "Goto Game" button. Now you can select the script "Slide Show" to see that game played, at one move every two seconds. I include data for several of the Kasparov vs Deep Blue games as an example.
To play your own game, choose the "New Game" script. Click on a piece to move, then click again on the destination square. The board will move the piece and fill in the chess notation for you. The board enforces who's turn it is, and that the pieces are being moved in a (mostly) legal fashion. When you finish playing - your new game is now available to watch as a slide show also!
Demonstration of new FM7 features:
- The board images is done with a single repeating field, with 64 repetitions. I use the ability to show only a portion of the reps each time the field appears on the layout (once for each row of the board).
- 64 buttons (one per board square), all using the same script with a script parameter.
- Custom functions: used to generate complex multi-keys for joins, generating SAN (chess notation) and other things.
- Multi-way join with multi-keys: Used to determine legal moves using a table of rules about each type of piece and how it is allowed to move, and which squares between must be empty.
Limitations:
- The chess notation is more verbose than usual, normally it only includes the destination square except when that alone would be ambigious. To trim it down, the database would need to understand when only a single piece could move to the destination.
- The board doesn't automatically add marks for check (+), they need to be appended manually after the move occurs.
- The board *does* know how to "castle", just move the king two squares to the right or left, and the rook will be moved for you.