Babylog is a project mainly written in Prolog, it's free.
Simple Bruno Faidutti Babylone game in prolog
12 sculptured stone pieces (3 Green, 3 Black, 3 Red, 3 Beige) 1 set of game rules
To be the first player to block the opponent.
The 12 pieces are placed randomly, one by one, between the two players. There are then 12 piles 1 piece high, in 4 different colours.
Players play on turn. The youngest player chooses to play first or second.
He takes a pile and places it on top of another pile which has at least one common characteristic with the pile he moves :
Height, 1 pile which contains 1 piece can be only put on a pile containing 1 piece, 1 pile which contains 2 pieces can be only put on a pile containing 2 pieces…..
Colour, only the colour of the piece located on top of each pile is taken into account.
Existing piles cannot be divided, which means that only all the pieces in a pile can be moved.
Once the player who went first has played, it is the opponent’s turn. He/she proceeds as indicated above and the game continues until one of the two players can no longer move a pile.
The game ends when one of the players cannot move anymore piles: He has lost and the other player wins the game.
You can find those rules and a lot of infos here: http://www.faidutti.com/index.php?Module=mesjeux&id=323