Program history

Reversi version 1.0 - by Edwin Vreugdenhil

It all started when I did a C++ course at my previous employer. Instead of doing the same boring case that is used for about anything you can think of, I suggested I'd make something that involved (weak) Artificial Intelligence. Reversi, or as it is better known, Othello, is a game that is not as difficult as chess, but still is not to be underestimated. Writing an engine for this seemed to fit the bill just right.

The result was a simple game, where the computer intelligence bits were written in Visual C++ and the interface was written in Visual Basic. It did not have (and still hasn't) an opening database, had only a few simple rules and worked on the brute force principle (and thus was very slow). Still it beat about 90% of the people it played against (all IT-people, but still a result).

Later, long after the course was finished, I learned about "alpha-beta pruning". Details of this are readily available on the internet, so I won't go into the details, but basically this is a method to cut off unprofitable lines. So instead of having to calculate everything (brute force), you can now concentrate on the more favourable lines. This speeds up the process, resulting in the ability to look further ahead.

As I am a Linux fan and also because I did not have Visual C++ and Visual Basic, I decided to rewrite my program as a character based game with GNU C++. Also I incorporated more and better rules for the engine. The program just got better and better!

Because the engine was now good enough and fast enough for the internet, I converted my C++ program to Java, using IBM's VisualAge for Java (the Linux version, obviously!). Also I changed the name from abhello (alpha-beta pruning + othello) to the more unimaginative Reversi.

Although not yet able to compete with the bigger and better known Reversi engines, there is still room for improvement. Also bare in mind that this is still a very simple and very small program. However, there aren't many people who have been able to beat my Reversi.

Therefore I challenge you! Try to beat my program!

Back to Reversi