The game of Quarto in Java Swing with an AI powered by the min-max algorithm. Written with Sal Testa.
Players take turn placing pieces from a pool of sixteen available pieces. Each piece has some combination of up to four distinct properties. The first player to place a piece which creates a row of four pieces all of which have at least one property in common wins the game.
During each turn, you place the piece given to you by your opponent and then you choose a piece from the available pool for your opponent to place during the next turn.
It can be seen as a turn-based version of the game Set board game.