Reversi is a well-known classic two-players game.
Click the ``Play with Reversi'' button below. Two
windows appear on two
screens. Now you can begin playing.
You can put a piece
if you move your mouse cursor to right place and
press Mouse-1-button.
Typing o-key, you quit the game. You cannot put a piece
when no other pieces are reversed. If you
cannot put a piece anywhere, type p-key, and it will come
to the opponent's turn.
This program demonstrates how things can be written easily with the combination of a nice GUI tool kit and a nice programming language for distributed computation. In Schematic, an index number is associated with a processor. In Reversi case, one of the two processors is called processor zero (or PE 0) and the other called processor one (or PE 1). Any combination of synchronous/asynchronous and local/remote procedure calls are done in almost the same syntax with a normal procedure call. In games like Reversi, when a processor gets a key input from the gamer, it must update both of the windows. Schematic programmers only have to write a single definition of the update procedure and invoke it both on the remote and the local processors in response to a key input. Neither message creation/transmission nor cooporation by the receiver's end is necessary. Right now, source code is somewhat ugly and many things are not written in the way they should be. We show the source code as is, for people to get the idea of distributed programming in SchematicTk.
You cannot cancel your move, so be careful when you put piece.