Help For the Game Of Projex

Introduction

Welcome to the network Projex server. The Projex challenge command starts a new game between userid1 and userid2 as follows:

         projex challenge [-size=number] userid1 userid2

The -size parameter sets the board size in the range 3..14 (default = 7). This number describes the number of cells along each of the board's three longest sides.

Other commands are the same as for all pbmserv games.

Board Layout

Projex is played on a hexagonal grid within a six-sided board. The number of cells per side alternate between n and n-1 around the board. For instance, a board of size 6 consists of 6, 5, 6, 5, 6, 5 cells along each edge, as shown below:


1- . . . . .
2- . . . . . .
3- . . . . . . .
4- . . . . . . . .
5- . . . . . . . . .
6- . . . . . . . . . .
7- . . . . . . . . .
8- . . . . . . . . \
9- . . . . . . . \ J
10- . . . . . . \ I
\ H
\ \ \ \ \ \ G
A B C D E F

Each cell is adjacent to its hexagonal neighbours. In addition, each edge cell is adjacent to the two edge cells directly across from it. This means that the game is played on a projective plane on which chains may leave the board from one side and reenter from the opposite side.

For instance, edge cell 'X' is adjacent to cells 'J' and 'K' as shown below. The figure on the right shows each cell's projection (denoted by lower case) on the far side of the board.

                                           o o p q r s 
. . . . . n A B C D E s
. . . . . . m # . . . . F t
. . . . . . . l Z . . . . . G u
. . . . . . . . k Y . . . . . . H v
X . . . . . . . . j X . . . . . . . I w
. . . . . . . . . J j W . . . . . . . . J x
. . . . . . . . K i V . . . . . . . K x
. . . . . . . . h U . . . . . . L y
. . . . . . . g T . . . . . M z
. . . . . . f S R Q P O N #
f e d c b a a

Rules

The board is initially empty. Players take turns placing one of their pieces at an empty point. The first player to complete a global loop wins. A global loop is a cycle of pieces that crosses the board edge an odd number of times.

The following games have been won by X who has completed a global loop:

          . x . . .                          . . . . x
. . x . . . . . . . x .
. . . x . . . . . . . x . .
. . . . x . . . x . . . . x x x
. . . . x . . . . . x . . . . . . .
. . . . x . . . . . . . x . . . . . . .
. . . . x . . . . x x . . . . . . .
. . . . x . . . . . . x x x x x
. . . . x . . . . x . . . .
. . . . x . . x . . . . One edge crossing Three edge crossings

The following games have an even number of edge crossings and therefore have not been won by either player (yet):

          . . . . .                          . . x . .       
. . . . . . x . . x . .
x x x x x x x . x . . x x x
. . . . . . . . . . x . . . . .
. . . . . . . . . x . . x . . . . .
. . . . . . . . . . . x . . x . . . . .
. . . . . . . . . . x . . x x x x x
x x x x x x x x x . . . . . . .
. . . . . . . . . . . x x x
. . . . . . . . . x . . Two edge crossings Four edge crossings

Ties are not possible. A filled board must contain a global loop, and a global loop cuts all possible opponent's global loops.

We can also describe global loops in the following way: a player has a global loop if the opponent cannot possibly connect any two opposed edge points directly across the board. For instance, it is still possible for O to connect two opposed edge points directly across the board in the "Two edge crossings" and "Four edge crossings" examples above, hence X has not yet completed a global loop in either of the these games.

Move Syntax

X moves first. The move syntax is:

        projex move board# userid password coord        

Where "coord" is an empty board point in the form 'F6'. The following command swaps the opening move:

        projex move board# userid password swap

The swap option can only be taken after the first three moves have been made. All cells on the projective board are of similar strength, so a single move swap is not a sufficient equaliser:

Other commands are the same as for all pbmserv games.

History

Projex was invented by Bill Taylor in 1994.

Bill would like to point out that a global loop leaves the rest of the board connected, whereas a local loop doesn't - it has two sides.

Implementation and help file by Cameron Browne, November 2003.