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
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
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
Therefore I challenge you! Try to beat my program!
Back to Reversi