I was so bored (and needed to practise C++) that I made choice to re-invent the wheel. Outcome of this decision was to program Bejeweled in my own way.
Program is written in Borland C++ 5 and is Win32 app. At that time I wanted to try mainly components like Button, TextArea and so on... So diamonds are placed into StringGrid. What the hell.. It was one of my first attempts to code a game.
Goal of the game is to swap two adjacent gems to make 3 in a row or column. Those 3 gems will vanish and new ones are generated. Score adds of course.
After some time and score reached, game simulates "level up" and adds some points to player's total score. Some of the gems dissapears and new ones are generated during this process.
Game ends when there's not possible to create 3 gems in row/column.
For simplicity, there's a button that after it's pressed tells the player exact location of gem to be swapped to create 3 of kind. You should not abuse this thought :)