mysql < quarto.sql
Example game play: mysql> -- Start the game and pass the first piece in the lower nibble mysql> CALL SetupGame(0x0A); -----------------------------------------------------------------------+ | rules | -----------------------------------------------------------------------+ | Quarto: 4 in a line (row, column, or long diagonal) with at least one bit in common wins. CALL Play(move); -- high 4 bits are board position, low 4 bits are piece for next player CALL PrintBoard(base); -- to display the board. Useful bases are 16 and 2. | -----------------------------------------------------------------------+ +------------------------+ | instructions | +------------------------+ | Player 1, play piece A | +------------------------+ mysql> CALL Play(0x00); +---------+ | board | +---------+ | A| | | | | | | | | | | | | | | | | | | +---------+ +------------------------+ | instructions | +------------------------+ | Player 0, play piece 0 | +------------------------+ mysql> CALL Play(0x1C); +---------+ | board | +---------+ | A|0| | | | | | | | | | | | | | | | | | +---------+ +------------------------+ | instructions | +------------------------+ | Player 1, play piece C | +------------------------+ mysql> CALL Play(0x2E); +---------+ | board | +---------+ | A|0|C| | | | | | | | | | | | | | | | | +---------+ +------------------------+ | instructions | +------------------------+ | Player 0, play piece E | +------------------------+ mysql> CALL Play(0x3F); +---------+ | board | +---------+ | A|0|C|E | | | | | | | | | | | | | | | | +---------+ +---------------+ | result | +---------------+ | player 0 wins | +---------------+
Very nice!
Just out of curiosity… did you get inspiration from my SQL Hangman and Bulls and Cows? (If not, please don’t mind my ego)
Comment by Federico Razzoli — October 13, 2015 @ 8:51 am