This game was invented by C.S. Elliott (or Elliot?) in 1976. Apocalypse is a simple and fast game whose special flavour comes from an original playing mechanism, which is scarcely seen: instead of moving their pawns alternatively, the players secretly write down their orders and then resolve the move by playing orders simultaneously. It's not enough to look for the different orders combinations, one must also take in account the opponent's psychology.

1. Rules
The game is played on a 5x5 board. Black and white players have 2 knights and 5 pawns each. The initial position of a game is shown below. You'll also need two game sheets to write down orders and maybe two books for the secrecy of writing.

1|HxxxH   C: white horseman (Horseman=Cavalier in French)
2|x...x   o: white pawn
3|.....   H: black horseman
4|o...o   x: black pawn
The aim of the game is to capture all the opponent's pawns. The game is drawn if both players lose simultaneously their last pawn or if nobody has a legal order. A move is separated in two phases:

First phase: writing intentions of play
Both players secretly write their orders, by specifying the start and end squares of the piece they want to move.
The knight moves or captures as in chess by making two steps in one direction then one step orthogonally. The knight can jump over pieces.
The pawn moves one step forward if the square above is empty, and it "captures" diagonally forward if the corresponding square contains an opponent piece before the move (but that piece may have been ordered to move, then the pawn will move diagonally without capturing). The pawn can't move backward or laterally.
A player cannot give the order to move to a square already occupied by one of his own piece.
I recommend that once the orders are written, both players exchange their game sheet, write again their order and resolve the move (see second phase).

Second phase: resolution
When both orders are known, the following rules apply:

  1. If orders don't interfere, they are executed.
  2. If two pieces are ordered to go to the same square, two situations can arise:
    1. If pieces are identical, they are both eliminated.
    2. If pieces are different, the pawn is eliminated while the knight goes to that square.
  3. If a piece is ordered to capture an opponent's piece, three situations can arise:
    1. If the opponent's piece has not been ordered to move, then it's captured.
    2. If the opponent's piece has been ordered to leave the square, the first piece moves to that square (so a pawn can move diagonally forward without capturing), but the opponent's piece is not captured and makes its own move.
    3. A special case of the latter is when two (necessarily identical) pieces have been ordered to capture each other, and they accordingly exchange places.
  4. If a pawn reaches the opponent's back rank, then:
    1. If the player does no more have two knights (the opponent may have just captured one), then the pawn is immediately promoted to knight.
    2. If the player still have two knights, then he puts back the pawn on the board on any non back rank square.
    3. If both players have their two knights and they ordered a pawn to reach opponent's back rank, then the pawns are simply exchanged (This was not in the original rule).
  5. If a player has no legal move, he simply passes while his opponent continues to play.
  6. The game is won by the player that takes all the opponent's pawn. The game is drawn if no player has a legal move, or if both player loose simultaneously their last pawn.
The "Larousse des jeux" mentions the possibility for unmoved pawns to make a double step, but if we are to mimic chess movements that far, what about the en passant capture? I chose to forget that possibility.
It might be useful to set up rules such as the ones seen in chess concerning threefold repetition and 50 moves without capture or pawn move.

Jeux & stratégie 40, august 1986, p.63 (French game magazine)
Larousse des jeux, 1999 edition, p.233 (French encyclopaedia of games)

2. Sample games
The first wasn't played, but composed to show all the rules. Will you find a shorter one?

1.e4e3 d1d2     ;no interference (1)
2.e3d2 d2e3     ;double missed capture (3.iii)
3.e5c4 e3e4
4.d2d1 e4e5     ;double pawn put back (4.iii)
5.b5b4 a2a3
6.c4a3 a3b4     ;missed capture (3.ii) + capture (3.i)
7.c5b4 b4b5 c4  ;pawn put back (4.ii)
8.a3c2 e1c2     ;double identical collision (2.i)
9.b4b3 a1b3     ;double different collision (2.ii)
10.a5b3 c4c5    ;promotion (4.i)
11.e5e4 c5b3
12.d5d4 b3d4
13.e4e3 d4b5
14.a4a3 b5a3
15.**** a3c2    ;no legal moves (5)
16.**** c2e3    ;end of game, black wins (6)

The second game was played against Jacques, a friend in my local chessclub who is kind enough to cope with my eccentricities. He accepted a game just after being shown the rules:
;2008/01/12 Jacques - Alain
1.e4e3 e1d3 2.e5d3 d3c5 3.d3c1 c5a4 4.c1e2 a4c3 5.e2c3 c3b5 6.c3b5 b5c3 7.d5d4 c3d5 8.b5c3 a1c2 9.c3d1 d5e3 10.d4d3 e3d1 11.a5c4 d1b2 12.d3c2 b2d3 ;black's 13... b1c2 wins in any case

Two more games, one against Jacques and another one against Sylvain, who also learned the rules at the same time:
;2008/01/25 Alain - Jacques
1.Ha5b3 Ha1b3 2.He5d3 He1d3 3.d5d4 d1d2 4.e4e3 d2d3 5.c5c4 b1b2 6.c4c3 d3c4 7.b5c4 c4c5 8.c3b2 b2c3 9.b2c1 Hc5a4 10.Hc1e2 c3d4 11.He2c3 Ha4c3 12.e3e2 d4d5 13.e2e1 Hd5c3 14.He1d3 a2a3 15.Hd3e1 Hc3a4 16.He1c2 Ha4b2 17.Hc2a3 Hb2c4 ;draw

;2008/01/25 Alain - Sylvain
1.Ha5b3 Ha1c2 2.Hb3c1 Hc2e3 3.Hc1a2 He1d3 4.Ha2c3 Hd3e5 5.d5d4 b1b2 6.Hc3d1 He3c2 7.d4d3 b2b3 8.d3c2 Hc2a3 9.a4b3 b3a4 10.c2c1 a4b5 a1 11.Hc1e2 He5c4 12.He2c1 Hc4d2 13.b3b2 Hd2e4 14.b2a1 Ha3b1 ; white wins

3. Strategy/Tactics in Opening/Middlegame/Endings
Due to the symmetry and move simultaneity, it's obvious no player has an advantage over the other. But the optimal (drawing) strategy does not exist, since the outcome of any strategy depends upon the simultaneous moves of the opponent.
So one can only hope the opponent will make very bad moves (that exists) or will have a stereotyped behaviour that will make us find a strategy against him.
In progress...

4. Program
In progress...
The first version of it is available here: apocalypse.zip. I hope things will evolve quite fast this month (january 2008), but for the moment the only thing the program does is reading a game written in a textfile, test laglity of moves and update the board accordingly. To test it, call it from a do$ prompt (start>programs>accessories>dos prompt) with a game written in a textfile (the example above is provided). For example
C:\baah\c>apoc apoc_tst.txt verbose
It will execute orders and show the resulting position:

;Game won by black.
;  abcde
; +-----
You can try uncommenting some of the moves (by adding semicolons) to see the game at different stages.

5. Insight into programming
It might get a bit technical here, but i'll try to give only the important ideas.