Sashité for Developers
  1. Sashité for Developers
  2. Rules
  3. Ōgi

Ōgi

Rule System for Ōgi (王棋) built on the Game Protocol.


1. Board

8×8 grid encoded in CELL.

Valid coordinates: a1h8

FEEN serialization: rank 8 → rank 1, file a → file h, / between ranks.

Promotion zones:


2. Style

SNN SIN Side
Ogi O first (Sente)
Ogi o second (Gote)

3. Pieces

All pieces encoded in PIN.

PIN Name Notes
K^ King / Jeweled King Terminal, non-promotable
I Princess Bishop + full Knight
+I Promoted Princess Princess + one square orthogonally
R Rook  
+R Promoted Rook Rook + one square diagonally
B Bishop  
+B Promoted Bishop Bishop + one square orthogonally
S Silver General  
+S Promoted Silver  
N Knight Forward L-shape only
+N Promoted Knight Moves as Promoted Silver
L Lance Forward only
+L Promoted Lance Moves as Promoted Silver
P Pawn  
+P Promoted Pawn Moves as Promoted Silver
k^ King / Jeweled King Terminal, non-promotable
i Princess  
+i Promoted Princess  
r Rook  
+r Promoted Rook  
b Bishop  
+b Promoted Bishop  
s Silver General  
+s Promoted Silver  
n Knight  
+n Promoted Knight  
l Lance  
+l Promoted Lance  
p Pawn  
+p Promoted Pawn  

3.1 King and Jeweled King

The King and Jeweled King are functionally identical—same movement rules, same terminal status. The distinction is purely representational:

In PIN, both are represented as K^ / k^. The EPIN derivation marker (') distinguishes the Jeweled King when needed:

Notation King (王) Jeweled King (玉)
PIN K^ / k^ K^ / k^
EPIN K^ / k^ K^' / k^'

4. Initial Position

Encoded in FEEN:

lnsik^snl/1r4b1/pppppppp/8/8/PPPPPPPP/1B4R1/LNSIK^SNL / O/o

4.1 Traditional Jeweled King assignment

By convention, the lower-ranked player uses the Jeweled King (玉). When ranks are equal or unknown, Gote (second player) typically receives it.

Since FEEN is based on EPIN, the derivation marker (') can explicitly indicate the Jeweled King:

FEEN Assignment
lnsik^'snl/1r4b1/pppppppp/8/8/PPPPPPPP/1B4R1/LNSIK^SNL / O/o Gote has the Jeweled King (default)
lnsik^snl/1r4b1/pppppppp/8/8/PPPPPPPP/1B4R1/LNSIK^'SNL / O/o Sente has the Jeweled King

Note: For indexing purposes (position comparison, repetition detection), implementations SHOULD omit the derivation marker, as both pieces are functionally identical.


5. Movements

All pseudo-legal moves encoded in GGN. Patterns shown are representative.

5.1 King / Jeweled King

{
  "O:K^": {
    "e4": {
      "d3": [{ "must": { "d3": "empty" } }, { "must": { "d3": "enemy" } }],
      "d4": [{ "must": { "d4": "empty" } }, { "must": { "d4": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "e3": [{ "must": { "e3": "empty" } }, { "must": { "e3": "enemy" } }],
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }],
      "f3": [{ "must": { "f3": "empty" } }, { "must": { "f3": "enemy" } }],
      "f4": [{ "must": { "f4": "empty" } }, { "must": { "f4": "enemy" } }],
      "f5": [{ "must": { "f5": "empty" } }, { "must": { "f5": "enemy" } }]
    }
  }
}

One square in any direction. Non-promotable.

5.2 Princess

{
  "O:I": {
    "d4": {
      "b2": [{ "must": { "c3": "empty", "b2": "empty" } }, { "must": { "c3": "empty", "b2": "enemy" } }],
      "c2": [{ "must": { "c2": "empty" } }, { "must": { "c2": "enemy" } }],
      "e2": [{ "must": { "e2": "empty" } }, { "must": { "e2": "enemy" } }],
      "b3": [{ "must": { "b3": "empty" } }, { "must": { "b3": "enemy" } }],
      "f3": [{ "must": { "f3": "empty" } }, { "must": { "f3": "enemy" } }],
      "b5": [{ "must": { "b5": "empty" } }, { "must": { "b5": "enemy" } }],
      "f5": [{ "must": { "f5": "empty" } }, { "must": { "f5": "enemy" } }],
      "c6": [{ "must": { "c6": "empty" } }, { "must": { "c6": "enemy" } }],
      "e6": [{ "must": { "e6": "empty" } }, { "must": { "e6": "enemy" } }]
    }
  }
}

Diagonal slides (path must be clear) + full Knight jumps (all 8 directions).

5.3 Promoted Princess

{
  "O:+I": {
    "d4": {
      "d3": [{ "must": { "d3": "empty" } }, { "must": { "d3": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "c4": [{ "must": { "c4": "empty" } }, { "must": { "c4": "enemy" } }],
      "e4": [{ "must": { "e4": "empty" } }, { "must": { "e4": "enemy" } }]
    }
  }
}

Princess moves + one square orthogonally.

5.4 Rook

{
  "O:R": {
    "a1": {
      "a4": [
        { "must": { "a2": "empty", "a3": "empty", "a4": "empty" } },
        { "must": { "a2": "empty", "a3": "empty", "a4": "enemy" } }
      ]
    }
  }
}

Any number of squares orthogonally. Path must be clear.

5.5 Promoted Rook (Dragon King)

{
  "O:+R": {
    "d4": {
      "c3": [{ "must": { "c3": "empty" } }, { "must": { "c3": "enemy" } }],
      "c5": [{ "must": { "c5": "empty" } }, { "must": { "c5": "enemy" } }],
      "e3": [{ "must": { "e3": "empty" } }, { "must": { "e3": "enemy" } }],
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }]
    }
  }
}

Rook moves + one square diagonally.

5.6 Bishop

{
  "O:B": {
    "c1": {
      "f4": [
        { "must": { "d2": "empty", "e3": "empty", "f4": "empty" } },
        { "must": { "d2": "empty", "e3": "empty", "f4": "enemy" } }
      ]
    }
  }
}

Any number of squares diagonally. Path must be clear.

5.7 Promoted Bishop (Dragon Horse)

{
  "O:+B": {
    "d4": {
      "d3": [{ "must": { "d3": "empty" } }, { "must": { "d3": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "c4": [{ "must": { "c4": "empty" } }, { "must": { "c4": "enemy" } }],
      "e4": [{ "must": { "e4": "empty" } }, { "must": { "e4": "enemy" } }]
    }
  }
}

Bishop moves + one square orthogonally.

5.8 Silver General

{
  "O:S": {
    "d4": {
      "c3": [{ "must": { "c3": "empty" } }, { "must": { "c3": "enemy" } }],
      "e3": [{ "must": { "e3": "empty" } }, { "must": { "e3": "enemy" } }],
      "c5": [{ "must": { "c5": "empty" } }, { "must": { "c5": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }]
    }
  }
}

One square diagonally (all 4) or one square forward. Cannot move horizontally or straight backward.

5.9 Promoted Silver

{
  "O:+S": {
    "d4": {
      "c4": [{ "must": { "c4": "empty" } }, { "must": { "c4": "enemy" } }],
      "e4": [{ "must": { "e4": "empty" } }, { "must": { "e4": "enemy" } }],
      "d3": [{ "must": { "d3": "empty" } }, { "must": { "d3": "enemy" } }],
      "d5": [{ "must": { "d5": "empty" } }, { "must": { "d5": "enemy" } }],
      "c5": [{ "must": { "c5": "empty" } }, { "must": { "c5": "enemy" } }],
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }]
    }
  }
}

One square orthogonally (all 4) or one square diagonally forward. Cannot move diagonally backward.

5.10 Knight

{
  "O:N": {
    "b1": {
      "a3": [{ "must": { "a3": "empty" } }, { "must": { "a3": "enemy" } }],
      "c3": [{ "must": { "c3": "empty" } }, { "must": { "c3": "enemy" } }]
    }
  }
}

Two squares forward + one square left/right. Jumps over pieces. Forward only (2 destinations).

5.11 Promoted Knight

Moves as Promoted Silver (see §5.9).

5.12 Lance

{
  "O:L": {
    "a1": {
      "a4": [{ "must": { "a2": "empty", "a3": "empty", "a4": "empty" } }, { "must": { "a2": "empty", "a3": "empty", "a4": "enemy" } }]
    }
  }
}

Any number of squares forward only. Path must be clear.

5.13 Promoted Lance

Moves as Promoted Silver (see §5.9).

5.14 Pawn

{
  "O:P": {
    "e4": {
      "e5": [{ "must": { "e5": "empty" } }, { "must": { "e5": "enemy" } }]
    }
  }
}

One square forward. Captures forward (same as move).

5.15 Promoted Pawn (Tokin)

Moves as Promoted Silver (see §5.9).

5.16 Drops

{
  "O:P": {
    "*": {
      "e5": [{ "must": { "e5": "empty" } }]
    }
  },
  "O:+P": {
    "*": {
      "e5": [{ "must": { "e5": "empty" } }]
    }
  }
}

Pieces in Hand can be dropped on any empty square, with restrictions (see §8).


6. Special Move Notation

Encoded in PMN.

Move PMN Description
Drop *-e5 Piece from Hand placed on e5
Promotion e7-e8/+P Pawn e7→e8, promotes
Decline promotion e7-e8/P Pawn e7→e8, stays unpromoted

No special compound moves (no castling equivalent).


7. Termination

Status values from CGSN with game-specific interpretation.

7.1 Decisive

CGSN Status Result
mareking King captured → capturing player wins
resignation Resigning player loses
illegalmove Offending player loses
repetition Player causing repetition loses

7.2 Draw

CGSN Status Condition
movelimit 50 moves without capture or unpromoted Pawn move

8. Constraints

Rules transforming pseudo-legal moves (GGN) into legal moves.

8.1 No check constraint

Unlike Chess, responding to check is not mandatory. A player may leave their King (or Jeweled King) in check. If the King is captured, the game ends immediately.

8.2 Mandatory promotion

Promotion is mandatory when a piece reaches a square from which it would have no legal move:

Piece Mandatory promotion
Pawn Last rank (rank 8 for Sente, rank 1 for Gote)
Lance Last rank
Knight Last two ranks (ranks 7–8 for Sente, ranks 1–2 for Gote)

8.3 Drop restrictions

Piece Prohibited drop locations
P / p (unpromoted Pawn) Cannot be dropped anywhere
L / l (unpromoted Lance) Last rank
N / n (unpromoted Knight) Last two ranks

Promoted Pawns (+P / +p) may be dropped (when obtained via King’s privilege).

8.4 Capture demotion

When a piece is captured, it reverts to unpromoted state in the captor’s Hand.

Exception (King’s privilege): When the King (or Jeweled King) captures a promoted piece, the player may choose to keep it promoted in Hand.

8.5 Repetition (Sennichite)

A move is illegal if it:

  1. Uses the same piece (or same type/state for drops)
  2. From the same origin (or Hand)
  3. To the same destination
  4. With the same promotion choice
  5. AND produces an identical position to one that occurred previously

The player committing such repetition loses immediately.


9. Reference

10. License

Open Web Foundation Agreement 1.0 (OWFa 1.0) — OWFa 1.0