Game Playing
My interest in Artifical Intelligence started with the game playing
programs. I am more interested in the traditional ones, such as the
board games, than the modern video games.
ChessMaps Chess Game-Playing Program
This is a chess game-playing program that uses a neural
network as part of its move-ordering algorithm. The neural network is
able to realise the relation between the squares on a chessboard that
we control and the squares that the moves we play influence. For
example, we tend to attack where we are strong and defend where we are
weak. The neural network was trained on data generated from Master and
Grandmaster games and the results indicated that quite a strong
relation does in fact exist.
A new search heuristic has been created using the neural network,
which has formed the basis for an overall move ordering algorithm.
This algorithm is also able to extract safe/unsafe, capture, forcing
and forced moves, and order appropriately to provide an even more
accurate ordering. This algorithm has now been turned into a chess
game-playing program and ported to C#. This
page provides more
information about the game and the option to download a version. The
current GUI interface is shown below. Note that the current download
version does not incorporate the research in the most recent
paper, but uses Transposition
Tables instead.

Chess with Mined Squares
In my spare time I have also come up with some new variations of the
traditional board games. This variation of
chess is now part of the
program that I wrote. The squares can be mined, so that you will be
'blown up' if you move onto them, which adds a memory test to the
game. The format is a formal (patent-like) specification.
Match-It Game-Playing Program
This game is about trying to optimise a grid of numbers to
score the maximum number of points. Points are scored by placing
two numbers that are the same, beside each other in the grid.
Numbers are moved by removing a column or row from the grid, which
will then place two other columns or rows beside each other. If
any of the numbers on these two columns or rows match, then their
values are added to the total score. So this is an optimisation
problem and you are required to determine what squares should be
removed, to score the maximum total number of points over the
remaining squares. This is very easy game to play, but skill is
required to score maximum points.This
page provides more information
about the game and the option to download a version.