The real name for this solitaire is Klondike and probably almost every human being knows this game. A version of it has been included in every Microsoft Windows since its 3.0 release. The game here is not as polished and fancy as the game which is shipped with the recent editions of Windows, but it seems to be stable and it can be finished. However, at this point there’s no fanfare or any other acknowledgement that game has been beaten (but you know that you have won when all cards are in foundations). In addition no timing or scoring is yet implemented.
The main idea behind this project was to try Test-driven development (TDD). I had never tried TDD before so I decided to use a language and libraries that I know quite well already. Programming a card game was also a new experience for me so I decided to implement Klondike solitaire mostly because it is well-known and it has quite small set of rules.
Maintaining TDD cycle is hard work and requires practice and self-discipline. This is evident especially if you are trying to learn it by yourself. Nevertheless, I can say that the time that I invested in writing tests was more than payed back with less time spent in debugging. When you implement a new feature and some of the old tests break you instantly know that you’ve done something wrong.
Install Java runtime environment from here if you do not have Java installed.