The object of Flipper is to have more pieces of your colour on the board at the end of the game than the other player has. The game is over when all the squares on the board have been filled or no legal moves exist.
To make a move, select any square that is next to a square that contains a piece of your opponent's colour such that it completes a horizontal, vertical, or diagonal row such that a piece of your colour is on both ends. When you trap your opponent's pieces in this manner they are turned into pieces of your colour.
A move may result in trapping pieces in multiple dirrections, provided they are in direct line with the played piece.
Legal moves *must* trap at least one piece of the opponent. If you can not make a move, your turn will be skipped.
The "turn" is indicated by the arrow pointing to the player's piece in the status bar. In the case where a player can not make a legal move, the turn is automatically passed to the other player. If both players can not move, the game is over.
The skill levels are rather interesting. In order to make the lower levels, I used a random move generator for them. The lowest level uses it for most of the game. The higher levels stop using it earlier. At about level 4, the random move generator is never used past the first move.
In order to make Flipper play "somewhat" different each time, another random number generator is used. This one is used when two moves look nearly equal in value. This is why Flipper may not play the same game from one execution to another. Note that this choice is only made between "equal" moves and should not cause for a lesser move (as far as the computer is concerned) to be made. (Well, "equal" can have a rather wide band in some cases, but that also depends on the level and move type.)
Well, this could well be the "most ported" program I know. It has been on over 9 different CPU types, on many of which there was more than one version in more than one language.
The original version was written in Fortran and then promptly rewritten in Z-80 assembler and then in Microsoft Basic (TRS-80) and then in Pascal, and then APL, and ... (you get the picture)
This program has seen more operating systems and CPUs than I wish to remember... It has gone through many rewrites in many languages. The Palm version is somewhat simplified and thus the playing skill levels do not quite seem to be linear functions. I have tried to make them somewhat linear, but for certain players, a lower skill level may well prove itself to be harder than a higher one. In addition, some skill levels play better as Black or as White.
Please send any suggestions and/or bug reports to Palm@Sinz.ORG