Hopping Games

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.

How a family uses it

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.

Keys

KeyMeaning
directionsWhich way a piece may go, as the board names its directions (a grid's all is the eight)
startThe cells each seat starts on; where absent, the setup position
goalsThe cells each seat must fill to win
campLockA piece in its goal may not leave it
hopadjacent, or long: over the first piece along a line, landing as far beyond it
seatsPer seat: steps (all, or {{ rows: [-1, 0] }}) and hops (any, capture or none)
noMovesLosesA side with no move on its turn has lost
fewerThanPer seat, the piece count below which that seat has lost

Seats that differ

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.

Games

Halma, Stern-Halma and Asalto.