Skip to content

Instantly share code, notes, and snippets.

@StoneCypher
Last active October 17, 2022 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save StoneCypher/c157be732881903b585b6cea51efb9f4 to your computer and use it in GitHub Desktop.
Save StoneCypher/c157be732881903b585b6cea51efb9f4 to your computer and use it in GitHub Desktop.

Stratego for Haters

This document attempts to describe the game Stratego, also known as L'Attaque, which is very closely related to its predecessor Gunjin Shogi ("Japanese Military Chess"). Other variants exist, such as Dover Patrol, Aviation, Tri-Tactics, Do Shou Qi ("jungle,") Lu Zhan Qi ("Land War,") Hai Lu Qong Zhan Qi ("Air Land Sea War,") Game of the Generals, and so forth.

There are notational convention differences between the American and European versions, as well as various published editions, which do not impact the game (by example, the numbering of the pieces points in opposing directions.) This document need not concern itself with such things, and will use the basic American conventions, because coffee.

What is described here is "Classic Stratego." Many software implementations instead implement "Electronic Stratego," which has important rules differences mentioned at the end.

 

 

Structure of the game

Stratego is a game for two players, here called red and blue, played in alternating turns. Stratego takes place on a square board partly filled with pieces belonging to either player, and takes place in alternating turns.

Stratego pieces have a "value." This value is either on the order 1 ... 10, or of two special values B and F. Each player has a fixed count, most multiple, of each of these kinds of piece, and the player places the pieces in their region as they see fit. Higher numbers are stronger, and will win in a direct conflict, with a few exceptions.

Crucially, Stratego is a game of incomplete information, based on these values: the values determine the relative strength of two pieces in a combat, and those values are hidden until a combat takes place (in the phyiscal game, this is by writing the value only on one side, facing the owner, and revealing it by turning it temporarily.) Because the players only learn one anothers' placements through combat, there is substantial guesswork and the opportunity for bluffing in gameplay.

In the traditional physical game, pieces are turned back after the combat, creating a memory game. (However, in a network instance there is no practical way to police cheating by note taking, so this should probably be something the game just tracks on screen for both players, to enforce fairness, with a voluntary disabling flag.)

The goal of Stratego is to capture the enemy player's flag. A capture takes place when two pieces fight. Two pieces fight when one piece moves into the cell of another piece. Except the Scout, pieces move a single square H/V at a time, one per turn. Scouts may move any distance H/V, but may not jump over other pieces or lakes. Your own two pieces may not fight, or jump over each other, or trade spaces. When two pieces enter the same cell, except in a few special cases, the higher value wins, and the lower value piece is permanently removed from the board and from play. If the two pieces in combat have matching values, they are both removed.

Those two special cases:

  • Miner (3) can defeat Bomb, which cannot move and otherwise defeats every piece.
  • X Spy (1) can defeat Marshall (10), which otherwise defeats every piece but Bomb.

Strategy and tactics in Stratego primarily come from determining the enemy's internal structure, then from establishing a path to clearing to its flag.

A tie game end state is technically possible, but extremely difficult to attain. Most players are not able to describe a mechanism for a tie. For all intents and purposes, this game should be thought of as generally not having a practically attainable tied state.

 

 

Pieces and the board

This document only concerns itself with the default Stratego arrangement. However, alternate arrangements exist, for more than two players, larger or smaller piece rosters, et cetera; a good implementation would be ready for these.

The default board is 10x10 with two 2x2 "lake" holes towards the middle. Each player is considered to initially own the three ranks of the board nearest them, and will fill them entirely with 40 pieces.

1111111111
1111111111
1111111111
1111111111
..~~..~~..
..~~..~~..
2222222222
2222222222
2222222222
2222222222

In this notation, 1 is a cell that player 1 should fill prior to gameplay; 2 is a cell that player 2 should fill prior to gameplay; . is an empty cell which can be used; ~ is a water cell, which must never be entered or crossed over.

There are gameplay labels for the values' numbers to maintain theme, and the ones for 1, 2, 3, and 10 are important, so we will use those instead of the numbers, leaving a practical range of 4 ... 9. The labels collide in letter on M and S, so we'll also use N and X: Marshal for 10, Miner for 3, Scout for 2, and X Spy for 1.

Conventionally, Bomb is ordered above the numbers, and F below the numbers, where the "top" of the numbers are the highest ranked Marshals.

As such, our pieces are [F, X, S, N, 4, 5, 6, 7, 8, 9, M, B].

Rank Symbol Name Count per player Special properties
B B Bomb 6 Immovable; beats every piece but MiNer
10 M Marshal 1 Can be captured by the X Spy
9 9 General 1
8 8 Colonel 2
7 7 Major 3
6 6 Captain 4
5 5 Lieutenant 4
4 4 Sergeant 4
3 N Miner 5 Can capture Bombs
2 S Scout 8 Can move any distance H/V, no jumps, no lakes
1 X Spy 1 Weakest piece, but can capture the Marshal
F F Flag 1 Immovable; capturing this ends the game

Pieces may never cohabitate. Every piece is in exactly one cell at any time. There is no jumping. All moves except the scout are single step, non-diagonal. The scout moves as the rook in chess. No piece may enter or cross over the lakes. No piece may enter the same cell as another piece of the same player. Pieces entering the cell of an enemy player's piece initiate a combat, during which one of the two pieces is immediately and permanently removed.

Gameplay

Play takes place in two phases:

  1. Setup
  2. Play

 

Setup Phase

During the setup phase, each player begins by placing their pieces, values all hidden, in their side of the board. In the default Stratego board, there are exactly the total count of pieces needed to fill the player's side three ranks of the board. Pieces may not cohabit cells. All pieces must be deployed. In a correct initial board state, no cells on either player's side will be empty, and all cells in the middle two ranks will also be empty.

There is no particular structure to the setup phase; just get it done, don't worry about trading off or taking turns placing or whatever.

Much of the goal in choosing a starting layout is to place pieces to defend your own flag. Much is in placing pieces or piece groups to attack the remote flag. The remainder is mostly bluffing.

Here is an example of a single player starting layout:

We would write that:

96S4SSSN6S
NS87B5M758
B6X75S65B4
4SNB4NNBFB

One might make the argument that by retaining bombs around the flag to the back rear, then front prepping that with scouts and stromger pieces, that the player making this arrangement is attempting to provide a miniature fortress, and attempting to prevent enemy miners from getting to those defending bombs.

The opposing player will make something similar on their side.

 

Play Phase

Game proceeds with red player moving first. It is believed that first player advantage in Stratego is nearly non-existant. Passing and zugzwang are not permitted. Players take alternating turns.

Game proceeds until one player's flag has lost a combat.

 

 

Extras

Many variants exist.

Alternate board layouts do exist. Various two-player editions offer larger boards for advanced players, or smaller boards for younger players.

This is a three-player board (note the triangular arrangement:)

This is a four-player board:

Smaller boards for "Stratego Lightning," "Stratego Junior," "Barrage Stratego," "Stratego Arena;" larger boards for "Stratego 4", "Ultimate Stratego," "Strategia;" larger boards and special pieces for "Stratego Waterloo," "Stratego Shogun," "Stratego Naval," "Stratego Legends." There exists a largely unrelated co-branded card game "Stratego Battle Cards" which may be safely ignored.

Despite total lack of rules overlap, Stratego Naval is weirdly reminiscent of battleship.

Good variant board support can probably just be an ASCII grid. Great variant board support cannot: the pseudo-triangular board for three-player has pseudo- rectangular and one quasi-circular region, meaning we need adjacency lists and placement coordinates, and if custom boards are a thing, we may need a nice paint program grid placer thing. We basically guaranteed need custom background support, and grid support as a dynamic image layer (because auto-drawing it is not happening for that 3 player board.) If we want any kind of map cell cursor, it's going to have to be images instead of just a geometric highlight (look at the shape of the center ring's cells.)

Variant rules also exist. In addition to the novel pieces mentioned in above printings, some implementations allow pieces to "carry" the flag, either by entering its cell and depositing it later, or by dragging it behind them.

Milton Bradley introduced "electronic stratego," which allows two players to rely on an embedded computer to referee battles, much like Gunjin Shogi. This is important because when a player loses, they don't learn what the other player's piece actually was, adding a giant new layer of strategy to the game. This game also makes bomb placement distinct from basic piece placement, and invisible to the other player, making them occasionally die on entering apparently empty cells, more like land mines.

A strong implementation will be able to show the player values in 0..9, in 1..10, letter-swapped, european inverse order, and so on. A very strong implementation will offer and possibly heavily emphasize icons over numbers (which I hate, but other people seem to like.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment