PLOY
A Program for the Board Game of Maneuver and Capture
by Dr. Thomas Tensi, 2012
 

Table of Contents

Rules of the Game

Overview

PLOY is a piece capturing board game similar to chess for two or four players. Here pieces have a limited range i.e. they cannot move arbitrarily far and the direction a piece may move is limited, but can be changed during the course of the game. Similarly to chess the aim of the game is to catch a special figure, which is called commander here.

The game has been designed by Frank Thibault and was published in 1970 as one of the famous 3M bookshelf games.

Board

PLOY is played on a 9x9 square board with 9 columns and 9 rows and horizontal, vertical and diagonal routes as shown in figure 1. This means, the board has 81 positions for pieces and a piece may only travel along the routes marked on the board.


Figure 1: PLOY Board

To make the description of positions and moves easier, each position has a coordinate consisting of a column letter and a row digit (similar to chess). This is shown in figure 2.


Figure 2: PLOY Board with Coordinates

So the lower left corner position has coordinate a1 the center position coordinate e5.

Pieces

Each player owns several circular pieces. All pieces of a player have the same color (either green, red, blue or yellow).

Each piece has direction indicators ("flags") on top going from the center to the edge of the piece. When the pieces are on the board, their flags are aligned with lines on the board and indicate in which direction that piece may move next.

Figure 3 shows the kinds of pieces available in PLOY.

Piece Name Commander Heavy Lance Medium Lance Light Lance
Picture
Number of Flags 4 3 3 3
Range 1 3 3 3
Piece Name Heavy Probe Medium Probe Light Probe Shield
Picture
Number of Flags 2 2 2 1
Range 2 2 2 1
Figure 3: PLOY Pieces

Movement

When it is a player's turn, he can choose from two kinds of moves:

In a motion move a piece is transferred from one position to another. Within a single move a piece may only move from it current position to one pointed at by one of its direction indicators within its range.

The range of a piece is given by the number of flags of this piece: e.g., a piece with two flags has a range of two. There is one exception: a commander only has a range of 1.

A moving piece is stopped by a piece of the same team and may hit but not pass a piece of an opponent. A hit piece of an opponent is replaced by the hitting piece.

Figure 4 shows as an example the moves of a light lancer. The lancer may move at most three positions (because it has three flags). It can go from e4 to d5, e3, e2 and e1 and may also hit the opponent piece on f5. Any moves on and beyond c6 are blocked by an own piece and beyond f5 by the opponent piece.


Figure 4: Moves of a Light Lancer

The second kind of move is a direction move. In this kind of move a piece stays on its position, but it is rotated by a multiple of 45° such that its flags point into another direction. Figure 5 shows a direction move of a heavy probe on c3 that is rotated by 135°.


Figure 5: Rotation Move of a Heavy Probe

On a single turn, shields (the pieces with one flag) may do a combined move by changing direction immediately after a motion move. Figure 6 shows a shield move from e7 to d6 with a subsequent rotation by 90°.


Figure 6: Combined Move of a Shield

Player Elimination

A player is eliminated when either his commander has been hit by another player or all pieces except the commander have been hit. Otherwise he is in play. This is called the strict elimination rule.

The engine supports a simpler form of elimination called relaxed elimination, where a player is eliminated only when his commander has been hit and is otherwise in play. This is identical to the chess elimination rule.

A player in a partnership game (see below) is absorbed, when he is eliminated according to the current elimination rule, but his team partner is still in play.

Game Variants

PLOY can be played by two or four players in one of the following variants:

In a two player game the two players get 15 pieces each and put them on the board in the configuration given in figure 7. The player with the green pieces moves first and both players take alternate turns until the one of them is eliminated.


Figure 7: Initial Configuration for a Two Player Game

In a four player game the four players get 9 pieces each and put them on the board in the configuration given in figure 8. Green moves first and the players take turns in clockwise direction.

Once a player is eliminated, all his pieces are taken over by the player doing the hit leading to elimination. The player taken over may not take a turn any longer, but his pieces can be used by the dominating player during his turn.

Note that in the original PLOY rules a bare commander (without other pieces) must be removed from the board; the engine does not support that rule, but leaves the commander on the board instead.


Figure 8: Initial Configuration for a Four Player Game

In a partnership game the four players also get 9 pieces each and put them on the board in the configuration given in figure 8. There are two teams consisting of green and yellow on the one side and red and blue on the other side. Green moves first followed by red, yellow and blue and so on.

Once a player is absorbed, all his pieces are taken over by his team partner. The partner also takes the turns of his team partner and may use all team pieces for his moves.


Figure 8: Initial Configuration for a Partnership Game

End of the Game

The game ends

Similar to chess a player may also be eliminated by resignation and by exceeding his allocated time.

The PLOY engine has no mechanism for resigning, but time control may be activated. Time control is liberal for humans, i.e., humans do not automatically lose the game when passing the time limit, but get a visual feedback instead that they have run out of time. The computer will always obey the allocated time budget.

Notation for Moves

We use the algebraic notation for moves that gives the coordinates of the start position and of the final position typically separated by a dash. When a piece is hit, the dash is replaced by a cross and when the move ends a game it is followed by a hash mark.

A rotation is indicated by a trailing digit preceeded by a plus or minus sign. It tells how many 45° rotations are done on the piece. Plus indicates a counterclockwise, minus a clockwise rotation (so a "+3" means a rotation by 135° counterclockwise).

The moves presented above are notated as follows:

e4-d5
e4xf5
e4-e3
e4-e2
e4-e1
c3+3
e7-d6+2

Interacting with the Program

Starting a New Game or Loading an Exiting Game

A new game can be started anytime by selecting the menu entry New from the File menu. A selection of different game variants is presented as a dialog box and — when selected — the new game is started. Note that the game has the default game parameters set: this means, for example, that all players are human.

An existing game can be loaded via a file selection box initiated by selecting the menu entry Load from the File menu. Ploy games have a ".plg" extension (for PLOY Game) and the file selection remembers the last location where a game has been loaded.

Saving a Game

An ongoing game may be saved anytime by selecting Save from the File menu. If the game already had a file associated, saving is immediately done to that file. Otherwise some file name has to be selected or entered via a file selection dialog.

Save As... from the File menu works analogous: you are prompted for a file name to save the ongoing game even when it already has been stored somewhere else.

Exporting Game as a Score Sheet

For an ongoing game the score sheet (containing the players names and their moves) may be saved anytime by selecting 'Export Score Sheet... from the File menu. The score sheet is saved in the same directory as the games, but with a txt-extension.

The format of the file is very simple, it is pure text file with tab separated columns. If you need a more sophisticated format, I suggest to import it into a spreadsheet and postprocess it there.

Entering Moves

Ploy moves can be entered mainly in two ways:

Also a mixture of both methods is possible.

Nevertheless the general logic is always the same: For a motion move you first have to select the start position of the moving piece, then the final position. For a direction move you select the position of the rotating piece, select that position again (to indicate that this piece does not move away from its start position) and then specify the rotation.

For example, to enter the move e4-d5 – from the example above – one has to select the position e4 and then the position d5. To enter the move f3+3 one has to select the position f3 and again that position f3 and then specify the rotation by 135° counterclockwise.

Entering Moves by Keyboard

Positions are entered by typing in the column letter first followed by the row digit and a final confirmation by the return key .

For example, to enter the position e4 one has to type e for the column, 4 for the row and a final confirming .

It is also possible to use the cursor keys to change the position of the cursor, but this is tedious and only recommended when the selected position has been missed.

The start position is entered this way, the final position also. Note that the cursor for entering the final position is initially positioned on the start position, so you can use the cursor keys for small distances as well as the coordinate method.

A motion move is fully defined by the start and final position, so it is executed as soon as the final position is confirmed. So for example the move e4-c6 is quickly entered as e 4 c 6

The program does not directly check whether the positions entered are plausible, but it checks whether the complete move is allowed.

A direction move is entered by selecting the piece to be rotated on the start position, selecting that position again and then specifying the rotation. The position is selected as described above by coordinates or cursor keys and a final confirmation.

The rotation is specified via cursor keys: a left or up cursor key turns the piece counterclockwise by 45°, a right or down cursor key turns it clockwise by 45°. A rotation indicator tells how far the piece has been rotated from its initial position. Once the orientation is okay, the rotation is again confirmed by the return key .

So for example the move e4+3 is quickly entered as e 4 . You do not have to give the coordinates for the position again, because it is selected by default as the final position.

Also note that by default a rotation of -1 is preselected: hence for clockwise rotations you do not need to press n cursor keys, but merely (n-1).

For a shield move the motion move has to be followed by a rotation, so one has to combine the entries.

Entering Moves by Mouse

A single click on the board via the mouse selects a board position. The position can be changed via mouse or keyboard until it is confirmed by another click on the board position selected.

So typically a board position is selected and confirmed by a double click.

A motion move is fully defined by the start and final position, so it is executed as soon as the final position is confirmed. So for example the move e4-c6 is quickly entered by mouse via

A direction move is entered by selecting the piece to be rotated on the start position, selecting that position again and then specifying the rotation. The position is selected and confirmed as described above by the mouse and another confirmation.

The rotation is specified via a small popup window with three buttons (cf. Figure 9): the left button turns the piece clockwise by 45°, the right button turns it clockwise by 45° and the center button confirms the rotation. A rotation indicator tells how far the piece has been rotated from its initial position.


Figure 9: Rotation by Mouse

Undoing Moves

To correct errors via keyboard several keys are available:

The same corrections (without the reset of the position input) can be done via mouse by selecting menu entries in the Move menu:

Defining Game Characteristics

There are two settings dialogs: one for defining the program settings (via menu Game::Program Preferences) and one for defining the settings for the current game (via menu Game::Game Preferences).


Figure 10: Program Settings Dialog

The program settings dialog (shown in figure 10) allows to define several settings:


Figure 11: Game Settings Dialog

When some game is active, the game settings dialog (shown in figure 11) allows to define several settings for that game:

Tips for Program Setup

This implementation of Ploy uses a MTD(f) search strategy and has a transposition table with 223 slots and also records several refutation moves per search level. On a current computer system a thinking time of less than 40s per move leads to a very bad play by the engine. PLOY has no endgame or opening library, but at least it plays reasonable with a thinking time of 60-120s.

As an alternative you can specify the number of nodes to be searched: this makes the result independent from the speed of your system. A reasonable value is 1,000,000 nodes; normally ploy processes about 40,000 nodes per second, so this takes about 25s.

It is also possible to give a bound on the number of plies, but this leads to long search times, because in a PLOY situation a lot of moves is possible because of the rotations. 200 moves per player are not uncommon. So, for example, a ply bound of 6 leads to the analysis of 2006=64·1012 nodes which takes decades to analyse on todays machines.

Customizing the Program

You can customize PLOY by editing or copying the resource file located in the resource directory. Here you will find string definitions for messages, colour codes in RGB hexadecimal notation and font definitions.

It is recommended that you take an existing RSC-file as a template, copy it and change accordingly. When you start PLOY again, your definition shows up in the program preferences as a new resource definition. The resource file uses an UTF-8 encoding, so you also can use non-ASCII characters as long as they are UTF-8-encoded within the file.