IX, the game

IX is a competitive combinatorial number-placement game using the placement rules of sudoku. It’s also the most difficult game you have ever played.

Game State

Game state consists of the position of the tiles on a board (grid), the distribution of tiles remaining for each player (player_tiles), and current player turn (player_turn). Game state is stored as a JSON object with the folling schema:

{
  "grid": <Array[Arracy[]]>,
  "player_tiles": <Array[Arracy[]]>,
  "player_turn": Integer,
}

Example game state:

{
  "grid": [
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 1, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0, 0, 0]
  ], 
  "player_tiles": [
    [9, 9, 7, 7, 7, 6, 6, 5, 5, 5, 5, 3, 3, 3, 3, 2, 2, 1, 1, 1], 
    [9, 9, 8, 8, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 2, 2, 1, 1], 
    [9, 9, 9, 9, 8, 8, 8, 7, 7, 6, 6, 6, 4, 4, 3, 3, 3, 2, 2, 1], 
    [9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 5, 4, 4, 3, 2, 2, 2, 1, 1]
  ], 
  "player_turn": 3
}

A complete game object includes a game id and timestamp for the last move and can be represented as a single

Rules.py