Trimini is a puzzle game.
It has 14 pieces, made by all possible different ways of combining
four isosceles right triangles, up to rotations and inversions.
The purpose of the game is to combine the 14 pieces to form
figures, like the one on the right.

There are figures that might be impossible to compose, like the
octagon with two squares per side. Although the 14 pieces have just
the right area to cover the octagon (whit area 28 unit squares),
there might be no solution due to
parity considerations.

A piece is symmetric under reflection, about either the horizontal X-axis
or the vertical Y-axis, if a reflection is equivalent to a rotation,
by 180^{o}.
A piece is even is the number of triangles oriented along the
X-Y diagonal is even (either 0, or 2 or 4). Otherwise the piece is odd.
Of the 14 pieces, six are symmetric under inversion (figure below);
five of them are even, the last one (rightmost in the figure) is odd.

Of the remaining 8, four are "odd" (figure on the left)
and four are even (figure on the right).
So overall there are five odd pieces and nine even pieces.

**How to play**

Get the code and the makefile to compile it. Then run

`./trimini`

To move a piece, press a mouse button in the bright spot
and "drag" it near the cross where you want to place the piece.
Then release the mouse button.

To rotate a piece click and release the left mouse button
in the bright spot.

To flip a piece over click and release the center or the right
mouse button in the bright spot.

The program is barely running, so feel free to improve it and let me know about it.

Marco Corvi - 2002