I am attempting something ambitious. Something I've tried before, but gave up almost immediately. I m going to build a fully-playable chess game in DF. I haven't worked out much of the mechanical workings yet, and I'm mostly doing this because I have little understanding of large-scale mechanics and computing, so this will be very fun to say the least.
Currently I am planning to use two grids of pumps to store the contents of each tile on the board. The first will be 8x8x7 pumps, and will control which piece is on each stack's respective square (0=nothing, 1=pawn, 2=rook, etc.). The second grid will be 8x8x3, and will control the color of the respective piece (nothing/white/black). I will also have a record of each captured piece.
The board will be a grid of 24x24 floors on the highest z-level of my map. Pieces will be represented by 20x10 grids of retracting bridges, one for white, one for black. From the board to the ground 100 z-levels below is what I have to work with. I will build a tower to support the board and contain the mechanical components. This tower will be as large as I can make it, 182x182x99 tiles in size. This is possibly the single largest structure anyone has built in the .31 version. Z-levels +1 and +2 will contain no mechanics, only lava. Z-levels +3 and +4 will be taken up entirely by a massive water reactor, as will +6 and +7 if needed.
When the game is completed, one of two things will happen. If black wins, the map is flooded with lava. If white wins, my fort is flooded in lava. As far as I can tell, I will only be able to determine victory by the actual capture of a king, so this should be easy.
My issue is that I have no way of determining valid and invalid moves, or limiting movement selection (which will be done by a grid of levers) to only valid moves. Any help on this would be greatly appreciated, otherwise I'll spend all semester trying to find a way and neglect my classes (which is very bad).
One final note: I'm using the free-raw-material reactions in Shaostoul's guide on the wiki (because there's no way I could get enough white stone without them), and my dwarves will have [SPEED:0] until the goblins come around with their traditional greetings of "An ambush! Curse them!" or "Snatcher! Protect the children!" I figure these are acceptable, as they are not related to the main task of actually programming the game to play another game.