TetraVex is an edge-matching puzzle. The player is presented with a grid (by default, 3x3) and nine square tiles, each with a number on each edge. The objective of the game is to place the tiles in the grid in the proper position as fast as possible. Two tiles can only be placed next to each other if the numbers on adjacent faces match.
TetraVex was originally available for Windows in Windows Entertainment Pack 3. It was later re-released as part of the Best of Windows Entertainment Pack. It is also available as an open source game on the GNOME desktop.
The original version of TetraVex (for the Windows Entertainment Pack 3) was written (and named) by Scott Ferguson who was also the Development Lead and an architect of the first version of Visual Basic. TetraVex was inspired by "the problem of tiling the plane" as described by Donald Knuth on page 382 of Volume 1: Fundamental Algorithms, the first book in his The Art of Computer Programming series.
Counting the possible number of TetraVex
Since the game is simple in its definition, it is easy to count how many possible TetraVex are for each grid of size . For instance, if , there are possible squares with a number from zero to nine on each edge. Therefore for there are possible TetraVex puzzles.
Proposition: There are possible TetraVex in a grid of size .
Proof sketch: For this is true. We can proceed with mathematical induction.
Take a grid of . The first rows and the first columns form a grid of and by the hypothesis of induction, there are possible TetraVex on that subgrid. Now, for each possible TetraVex on the subgrid, we can choose squares to be placed in the position of the grid (first row, last column), because only one side is determined. Once this square is chosen, there are squares available to be placed in the position , and fixing that square we have possibilities for the square on position . We can go on until the square on position is fixed.
The same is true for the last row: there are possibilities for the square on the first column and last row, and for all the other.
This gives us . Then the proposition is proven by induction.
It is easy to see that if the edges of the squares are allowed to take possible numbers, then there are possible TetraVex puzzles.