A friend of mine is working on a game while he is twiddling his thumbs waiting for a new gig. He claims that it's an opportunity (at some point) to “learn about and code up genetic algorithms“. I think he's just doing it because it's fun. ;-) I've seen it and it does look very promising... it's one of those games with very simple rules but makes you have to actually think. I like those kinds of games. Sometimes we get so lost in 3D realism and we forget about the very nature of a game... it's playability. Simple board games (and puzzle games) are pretty good at doing this and thus why they tend to make great games. Sure, they don't complete with the likes of (to steal Jason's game he mentioned) Splinter Cell... I'm talking about games like the Windows Solitaire game. Taking a moment to help Jason out on a problem he encountered, I decided I just couldn't let him have all the fun. I thumbed through a book written in 1978 called Basic Computer Games: Microcomputer Edition by David H. Ahl. I found a very simplistic game that falls into the category of simple and makes you work the brain. He calls it “One Check“ and here's the description:
In this game or puzzle, 48 checkers are placed on the two outside spaces of a standard 64-square checkerboard as shown: (picture not included, see screen shot of my implementation). The object is to remove as many checkers as possible by diagonal jumps (as in standard checkers). It is easy to remove 30 to 39 checkers, a challenge to remove 40 to 44 and a substantial feat to remove 45 to 47.
Like I said, the rules are pretty simple and the original BASIC code was only 88 lines, with 18 or so being the rules. So I decided this would be a great (albeit simplistic) game to bring to life using Windows Forms and .NET. So using nothing but the description of the game (since so much would have to change, the original code wouldn't be too much help except maybe to clarify the rules), I've started writing and after a couple hours work, here's a screen shot of the progress so far.
You can select a play piece and move it diagonally... if it's not a valid move, the piece will be ghosted while dragging it. Now that I've gotten it this far I have a few other ideas in mind to enhance it. Such as allow horizontal and vertical movement (similar to some of the peg style puzzles). I've also coded it so that the number of squares can be adjusted. The number of pieces can be increased as well. And yes... it is very difficult to get a lot of pieces removed. ;-)