Full Report for Iriri by Hoembla

Full Report for Iriri by Hoembla

Iriri is a pattern matching game for icehouse pyramids. Players score points by laying words on a grid in a crossword-like manner. The possible words are determined by a dictionary, which shrinks as the game goes on.

Generated at 2023-06-18, 15:21 from 1000 logged games.

Rules

Representative game (in the sense of being of mean length). Wherever you see the 'representative game' referred to in later sections, this is it!

Material

Iriri is played with 1 stash of icehouse pyramids per player, meaning 15 pyramids, 5 of each size. Alternatively, any 6 sets of 5 tokens can be used, as long as it is clear to which player each belongs.

Definitions

Dictionary
pieces arranged in a circle. Pieces are taken from here, shrinking the circle.
Board
the play area which is initially empty, where players place sequences of pieces connected orthogonally
Word
a connected row or column of at least 2 pieces of any colour on the board, bounded at both ends by an empty space
Valid word
a word which can be matched to a sequence of adjacent pieces in the dictionary at the moment of play. Both the colour and size of every piece must match. Direction doesn’t matter. For the purpose of matching, the dictionary is considered an infinite loop.
Hand
a set of 3 pieces from which a player can play words on the board. Hands are public information.

Setup and first turns

Each player chooses a (different) colour and takes a stash (i.e. 15 pyramids, 5 of each size) in that colour.

Each player takes 1 pyramid of each size from their stash into their hand.

Shuffle all other pieces together and place them in a circle in random order. This is the dictionary.

Player 1 begins the place phase of his turn by placing a valid word (of at least 2 pieces) in the empty play area. For this first turn on the empty board, player 1 scores three times the number of placed pieces + 0.5. Play continues as described below (i.e. with the take phase of player 1).

On your turn

A turn consists of two phases: place and take. They are always performed in that order by a single player, after which the turn passes to the next player. Both phases are mandatory (i.e. no passing or skipping a phase), unless no move is possible.

Place phase

Place one or more pieces from your hand on the board, connected (orthogonally) in at least one place to the rest of the pyramids.

All placed pieces must lie on a single horizontal or vertical line, with no empty spaces between them.

Pieces may be placed on both sides of existing pieces, between existing pieces, etc.. as long as they satisfy the above rule.

Each word on the play area of which the newly placed pieces are part, both horizontal and vertical, must be a valid word at the time of placement, according to the current dictionary.

For each word you formed, score 1 point per piece. Although you may only place pieces of your own colour, you score points for pieces of the opponent’s colour as well. If a piece is part of 2 newly formed words, count it twice.

If you can’t form a valid word, you must pass.

Take phase

Refill your hand to 3 pieces, by taking pieces of your colour from the dictionary. You cannot take the last piece of a specific type (size + colour), so one piece of every type will remain in the dictionary to the very end. Other than this, you may freely choose which pieces to take, i.e. any combination of sizes from whichever positions you like.

After removing a piece from the dictionary, close the gap so that the pieces on either side are now adjacent.

If too few pieces remain to fill up your hand, take as many as possible.

If you can’t take any more pieces, skip this phase. It does not count as a pass. You may still perform the place phase of your next turn even with fewer than 3 pieces in hand.

Game end

The game ends when no player can make a move, i.e. all players have been forced to pass in succession.

The player with the highest score is the winner.

Miscellaneous

General comments:

Play: Combinatorial

Family: Combinatorial 2022

Mechanism(s): Pattern

Components: Board

Level: Standard

BGG Stats

BGG EntryIriri
BGG Rating7
#Voters5
SD0
BGG Weight2
#Voters1
Year2022

BGG Ratings and Comments

UserRatingComment
jdonland7
Carthoris7It's sort of a Qwirkle thing, i.e. Scrabble with abstract signs instead of natural language. But it takes another cue from MeM for pattern-matching based on the arbitrary arrangement of the piece reserve. It's an interesting little two-player challenge.
fiddly_bitsN/AI have the old-school stashes...
mrraow7Certainly an original concept; but has a couple of conceptual hurdles (e.g the need to re-evaluate all legal moves after each removal from the dictionary) that mean I'd prefer to admire it from a distance.
UanarchyK7Scrabble with variable dictionary which is edited during play Played solo against self to test out. Seems like scores will often be very similar. Very little opportunity for lookahead. Extremely tactical. Half the game takes place in the dictionary.
RichardIngram7

Kolomogorov Complexity Analysis

Size (bytes)37112
Reference Size10673
Ratio3.48

Ai Ai calculates the size of the implementation, and compares it to the Ai Ai implementation of the simplest possible game (which just fills the board). Note that this estimate may include some graphics and heuristics code as well as the game logic. See the wikipedia entry for more details.

Playout Complexity Estimate

Playouts per second17644.03 (56.68µs/playout)
Reference Size601106.04 (1.66µs/playout)
Ratio (low is good)34.07

Tavener complexity: the heat generated by playing every possible instance of a game with a perfectly efficient programme. Since this is not possible to calculate, Ai Ai calculates the number of random playouts per second and compares it to the fastest non-trivial Ai Ai game (Connect 4). This ratio gives a practical indication of how complex the game is. Combine this with the computational state space, and you can get an idea of how strong the default (MCTS-based) AI will be.

State Space Complexity

% new positions/bucket

State Space Complexity37321737 
State Space Complexity bounds2266849 < 37321737 < ∞ 
State Space Complexity (log 10)7.57 
State Space Complexity bounds (log 10)6.36 <= 7.57 <= ∞ 
Samples40463 
Confidence0.000: totally unreliable, 100: perfect

State space complexity (where present) is an estimate of the number of distinct game tree reachable through actual play. Over a series of random games, Ai Ai checks each position to see if it is new, or a repeat of a previous position and keeps a total for each game. As the number of games increase, the quantity of new positions seen per game decreases. These games are then partitioned into a number of buckets, and if certain conditions are met, Ai Ai treats the number in each bucket as the start of a strictly decreasing geometric sequence and sums it to estimate the total state space. The accuracy is calculated as 1-[end bucket count]/[starting bucklet count]

Playout/Search Speed

LabelIts/sSDNodes/sSDGame lengthSD
Random playout6913,26463487
search.UCT18,1602764411

Random: 10 second warmup for the hotspot compiler. 100 trials of 1000ms each.

Other: 100 playouts, means calculated over the first 5 moves only to avoid distortion due to speedup at end of game.

Mirroring Strategies

Rotation (Half turn) lost each game as expected.
Reflection (X axis) lost each game as expected.
Reflection (Y axis) lost each game as expected.
Copy last move lost each game as expected.

Mirroring strategies attempt to copy the previous move. On first move, they will attempt to play in the centre. If neither of these are possible, they will pick a random move. Each entry represents a different form of copying; direct copy, reflection in either the X or Y axis, half-turn rotation.

Win % By Player (Bias)

1: Blue win %33.00±2.84Includes draws = 50%
2: Yellow win %67.00±2.97Includes draws = 50%
Draw %0.00Percentage of games where all players draw.
Decisive %100.00Percentage of games with a single winner.
Samples1000Quantity of logged games played

Note: that win/loss statistics may vary depending on thinking time (horizon effect, etc.), bad heuristics, bugs, and other factors, so should be taken with a pinch of salt. (Given perfect play, any game of pure skill will always end in the same result.)

Note: Ai Ai differentiates between states where all players draw or win or lose; this is mostly to support cooperative games.

UCT Skill Chains

MatchAIStrong WinsDrawsStrong Losses#GamesStrong Scorep1 Win%Draw%p2 Win%Game Length
0Random         
2UCT (its=3)63102338640.6998 <= 0.7303 <= 0.758839.700.0060.3047.69
4UCT (its=22)63101417720.7886 <= 0.8174 <= 0.843047.540.0052.4646.83
5UCT (its=60)63102338640.6998 <= 0.7303 <= 0.758838.080.0061.9245.96
6UCT (its=164)63102648950.6743 <= 0.7050 <= 0.734038.550.0061.4545.21
7UCT (its=445)63102919220.6537 <= 0.6844 <= 0.713638.390.0061.6144.38
8UCT (its=1210)63103599900.6069 <= 0.6374 <= 0.666736.570.0063.4344.55
9
UCT (its=3290)
460
0
292
752
0.5764 <= 0.6117 <= 0.6459
31.91
0.00
68.09
43.79
10
UCT (its=3290)
482
0
518
1000
0.4512 <= 0.4820 <= 0.5130
32.60
0.00
67.40
43.83

Search for levels ended: time limit reached.

Level of Play: Strong beats Weak 60% of the time (lower bound with 95% confidence).

Draw%, p1 win% and game length may give some indication of trends as AI strength increases.

1st Player Win Ratios by Playing Strength

This chart shows the win(green)/draw(black)/loss(red) percentages, as UCT play strength increases. Note that for most games, the top playing strength show here will be distinctly below human standard.

Complexity

Game lengthNaN 
Branching factorNaN 
Complexity10^NaNBased on game length and branching factor
Computational Complexity10^-∞Saturation reached - accuracy very high.
Samples1000Quantity of logged games played

Computational complexity (where present) is an estimate of the game tree reachable through actual play. For each game in turn, Ai Ai marks the positions reached in a hashtable, then counts the number of new moves added to the table. Once all moves are applied, it treats this sequence as a geometric progression and calculates the sum as n-> infinity.

Move Classification

Board Size676Quantity of distinct board cells
Distinct actions135Quantity of distinct moves (e.g. "e4") regardless of position in game tree
Killer moves2A 'killer' move is selected by the AI more than 50% of the time
Killers: Hand 2 -> aa26,Hand 0 -> ab25
Good moves0A good move is selected by the AI more than the average
Bad moves134A bad move is selected by the AI less than the average
Terrible moves20A terrible move is never selected by the AI
Too many terrible moves to list.
Samples1000Quantity of logged games played

Board Coverage

A mean of NaN% of board locations were used per game.

Colour and size show the frequency of visits.

Game Length

Game length frequencies.

Mean42.46
Mode[50]
Median10.0

Change in Material Per Turn

Mean change in material/round0.17Complete round of play (all players)

This chart is based on a single representative* playout, and gives a feel for the change in material over the course of a game. (* Representative in the sense that it is close to the mean length.)

Actions/turn

Table: branching factor per turn, based on a single representative* game. (* Representative in the sense that it is close to the mean game length.)

Action Types per Turn

This chart is based on a single representative* game, and gives a feel for the types of moves available throughout that game. (* Representative in the sense that it is close to the mean game length.)

Red: removal, Black: move, Blue: Add, Grey: pass, Purple: swap sides, Brown: other.

Trajectory

This chart shows the best move value with respect to the active player; the orange line represents the value of doing nothing (null move).

The lead changed on 7% of the game turns. Ai Ai found 0 critical turns (turns with only one good option).

Position Heatmap

This chart shows the relative temperature of all moves each turn. Colour range: black (worst), red, orange(even), yellow, white(best).

Good/Effective moves

MeasureAll playersPlayer 1Player 2
Mean % of effective moves87.9686.2589.13
Mean no. of effective moves5.795.595.92
Effective game space10^26.0610^9.9710^16.09
Mean % of good moves62.2910.9197.22
Mean no. of good moves4.520.946.96
Good move game space10^19.5910^2.0810^17.51

These figures were calculated over a single game.

An effective move is one with score 0.1 of the best move (including the best move). -1 (loss) <= score <= 1 (win)

A good move has a score > 0. Note that when there are no good moves, an multiplier of 1 is used for the game space calculation.

Quality Measures

MeasureValueDescription
Hot turns47.62%A hot turn is one where making a move is better than doing nothing.
Momentum26.19%% of turns where a player improved their score.
Correction19.05%% of turns where the score headed back towards equality.
Depth2.71%Difference in evaluation between a short and long search.
Drama0.00%How much the winner was behind before their final victory.
Foulup Factor40.48%Moves that looked better than the best move after a short search.
Surprising turns2.38%Turns that looked bad after a short search, but good after a long one.
Last lead change11.90%Distance through game when the lead changed for the last time.
Decisiveness90.48%Distance from the result being known to the end of the game.

These figures were calculated over a single representative* game, and based on the measures of quality described in "Automatic Generation and Evaluation of Recombination Games" (Cameron Browne, 2007). (* Representative, in the sense that it is close to the mean game length.)

Unique Positions Reachable at Depth

01234567
1363727826710149597621912215759

Note: most games do not take board rotation and reflection into consideration.
Multi-part turns could be treated as the same or different depth depending on the implementation.
Counts to depth N include all moves reachable at lower depths.
Inaccuracies may also exist due to hash collisions, but Ai Ai uses 64-bit hashes so these will be a very small fraction of a percentage point.

Shortest Game(s)

No solutions found to depth 7.

Puzzles

PuzzleSolution

Blue to win in 12 moves

Blue to win in 10 moves

Blue to win in 13 moves

Blue to win in 9 moves

Blue to win in 12 moves

Yellow to win in 8 moves

Blue to win in 16 moves

Blue to win in 14 moves

Yellow to win in 8 moves

Blue to win in 5 moves

Blue to win in 6 moves

Yellow to win in 4 moves

Weak puzzle selection criteria are in place; the first move may not be unique.