For an advance Java class I had to program Mahjong. I really never understood Mahjong until this project. I played it as a kid, but just click aimlessly. So, I had to learn the game rules then program it. All the tiles and everything you see are from scratch and everything but the seasons tiles are drawn via code, even the the little circles ( what a pain in the butt :P ).
If you’re not familiar with the game, all you really have to do is match two legal tiles, which means the tile cannot have another tile on top of it and there is not a tile either on the left or right side of the tile.
Once you find these tiles they will be displayed on the right. You can even undo infinite moves, just in case a previous move hampers a future one. The tiles are arranged randomly, but you can enter in a game number to recreate copies of games. If you are able to match all the tiles fireworks will play!
You can download the game here.
The entire project was built in Java.