|
Natural Computing is one of the computer science topics very close to my heart.
I have always dreamt of building this 'Darwin Simulator' which can show, visualy,
numerically and computationally how individuals evolve in conjunction with their
socities. Maybe I will build it one day. Just to be on the realistic side, my grand
dream of making a 'Darwin Simulator' can't be realized till I master the tools to
achieve it. The tools include Genetic Algorithms, Neural Networks, Chaos theory
and of course game programming. This program of mine - the Chess application is
a small step towards the ultimate goal.
A program which shows signs of intelligent behaviour can be classified as
an AI program. Game Theory has significant influence in the area of AI. One of the areas
in which game theory is typically employed are two player games like Chess, Othello, Push,
Tic-Tac-Toe etc. The domain model of a two player strategy game can expressed in terms of
board, rules, pieces, players and strategies. It's quite interesting to note that
there are algorithms which tackle two player games, which implies that if we can sufficiently
abstract the game, we can use the same algorithm (engine) to play any type of two player
game by plugging in the game rules and strategies.
In this program, I have tried to create a generic framework for the
computer to play any two player strategy game. As an example, I have included applets
for Tic-Tac-Toe and Chess being built upon the same core framework. I have used
alpha-beta pruning as the core algorithm and have supplimented it with game specific
rules and strategies. It is quite interesting to note that for a simple game like
Tic-Tac-Toe, where the solution space is limited, it is impossible for a human player
to win against the computer. Where as, for a game with a huge solution space, the
algorithm can show decent signs of intelligence by selectively pruning the game
tree to a reasonable depth.
You can follow the links below to explore more. I have included the source code,
documentation and applets. Please note that this source code was developed sometimes
during 2001 and has not been updated since.
Framework | Tic-Tac-Toe |
Chess | Source Code | Rose Model |
Javadocs (download) | Javadocs (online)
|