One plugin plays Halma on its square board, Stern-Halma on its star and Asalto on its cross. A piece steps to a neighbour or chains hops over pieces, and each seat may play by rules of its own.
engine:
topology: { type: graph, structure: star }
plugin: hop
plugins:
stern-halma:
campLock: true
goals:
- [h112, h113, ...]
- [h1, h2, ...]
The plugin moves along topology.rays, so the same code plays a grid and a graph whose nodes lie on a lattice. The graph topology generates the Stern-Halma star and the Asalto cross with those coordinates.
| Key | Meaning |
|---|---|
directions | Which way a piece may go, as the board names its directions (a grid's all is the eight) |
start | The cells each seat starts on; where absent, the setup position |
goals | The cells each seat must fill to win |
campLock | A piece in its goal may not leave it |
hop | adjacent, or long: over the first piece along a line, landing as far beyond it |
seats | Per seat: steps (all, or {{ rows: [-1, 0] }}) and hops (any, capture or none) |
noMovesLoses | A side with no move on its turn has lost |
fewerThan | Per seat, the piece count below which that seat has lost |
Asalto's Officers step any way and jump Soldiers to take them; its Soldiers step forward or sideways and never jump. The Soldiers win by filling the fortress or leaving the Officers no move, the Officers by leaving too few Soldiers to fill it. All of it is the seats, goals, noMovesLoses and fewerThan keys.
Halma, Stern-Halma and Asalto.