I started writing the original Minesweeper on 26th August 2004. Back then I knew very little about both Object Oriented Programming and programming with graphics, so writing a Minesweeper clone was the ideal to get a bit of experience in both fields.
For graphics, I used the SDL library. Thinking that the SDL API was a little hard to remember, I resolved to writing my own functions that used its API, calling it DinoLib at the time. In time I realised that my DinoLib only made things more complicated, but by that time Minesweeper was too deeply based on DinoLib to remove the connection. This and the fact that the Object Oriented Programming, naming conventions and other programming used were far from user-friendly meant that the Minesweeper project would never reach completion and the only hope to get it to work was to rewrite it from scratch.
Although it is terrible to look at the source code and try and figure out what does what, which means that it's nearly impossible to update, Minesweeper did have a lot of things working right. A lot of features were working fine, like random mine generation, a timer, double-clicks, and showing all mines when losing. In actual fact, the game was playable: you could win and lose. The real problem was that since at the time I did not know that recursion even existed, I could not find the right algorithm to clear entire areas of empty tiles.
I kept working steadily on this project until 26th September 2006. After that, I did a few minor updates once in a while, but they added very little to it.
© Daniel D'Agostino 2006 - 2025