About the java game:
I have only written a few levels of artificial intelligence for this
game so far. For the curious, they are explained briefly below the applet. Most people
find that the MinMax Bot is the hardest level and the Simple Bot the easiest.
If you are wondering why I have the Hammer Bot ranked above the MinMax Bot,
it is because, for some odd reason, the Hammer does manage to beat the MinMax
(but not much else).
To the Othello enthusiasts: I know I should upload that
new 'harder' level, which has some extra end-game intelligence and more
accurate dynamics in the board location value matrix. However, I been a
extremely
busy and haven't really finished it yet. So, for now, I hope you can
simply enjoy the game 'as-is'...
Things to read:
Introduction to Basic Othello Strategy and Algorithms - I
take some pride in that a healthy number of university professors as
well as A.I. enthusiasts have used my article, originally written for Generation 5, as a resource for classrooms and various project inspirations. In fact,
at your request, I have gone so far
as to share my source with more than a few of you. (If you're a CSc
student looking to skimp out on a homework assignment, please don't try
to turn it in as your own work) Anyway, I would think some of you might
be happy to know that, at some point, I intend to transform this site
into an open source othello project. However, I can only handle one
extra-curricular
activity at a time. So it may be a while before I get around to setting
it up.
If you are interested in contributing and/or want me to let you know
when I get there, feel free to email me [mmandt@leagueusa.com].
The Synthetic Age - At long last, I would like to share with you my first Sci-Fi novel. I tried to write something that is fun, intellectually engaging, and smooth. Feedback so far has been very encouraging.
If you're new to this site, remember to hit the "new game" button after you select your opponent.
Marc's Army of A.I. Bot's:
Simple Bot
This is a basic greedy algorithm. It only thinks about how many can
it flip on its next turn.
Static H Bot
This is a modified greedy algorithm that uses a simple (static)
toheuristic weight some board locations over others.
Dynamic H Bot
This is a modified Static Bot that uses a dynamic heuristic.
This heuristic changes the weights of the board locations as the game
progresses. There are also some simple "look ahead" decisions added in
as well:
If a move can be made which causes the opponent to forfeit
their next turn, that move is always taken.
If
there is a decision to make between equally valued moves, the move that
leaves the fewest move options to the opponent is taken.
MinMax Bot
This bot always takes the best worse situation. Sound
funny? Ok, assume that an opponent is going to take away as many
of the other players points as possible. This algorithm tries to figure
out the best it can end up based on that assumption. So essentially, its
the best case out of set of worse case scenarios. It uses a recursive
search, currently 3 moves deep, to accomplish this.
Hammer Bot
Ok, this bot is more like an A.I. experiment
gone bad, so it isn't that hard to beat. Although, it does do a good job
of beating the MinMax Bot. However, it has been pointed out that it doesn't
do so good against the Dynamic H Bot. Anyway, it is staying up on the website
until I finish my new bot, which should be soon.