>To quote Stephen Taverner at BGG:
Fame at last ;)
Stephen Tavener, but you got my first name correct, so you're forgiven.
>I think Zertz is just too tough to get a good AI for though...
There are two approaches that might produce a good AI. One day, I might
follow up on them, if I ever have the free time, but I'd be happy for
someone else to beat me to it.
The first approach uses a theory called - I think - UDT. Basically,
instead of a board evaluation function, you play through the whole game
using random moves; not once, but say 100,000 times. This gives you a
statistical value for the board without having to actually evaluate the
position. You then minimax, with ambiguous positions (random win/lose
ratio near the mean) automatically candidates for further moves. This
technique is apparently producing strong 9x9 and 13x13 go playing
programmes.
The second approach is a learning algorithm, that backtracks to see how
it was beaten, and builds up a pattern library of forced wins from a
given position. The important thing is to mark spaces as {must be
empty}, {must be occupied by x}, {can remove}, {don't care} but also
mark the directions from each space as {can't move in this direction},
{can move in this direction}, {don't care}, and associate the overall
pattern with the winning balls. A little bit of smartness should mean
that one defeat will let the programme recognise all reflections and
rotations of the pattern used to defeat it, and even permutations of the
balls captures/sacrificed. The same patterns should scale from 37 rings
to 48 rings, to 61 rings... which is how big I think the board should
be!
--
Stephen Tavener | There is no such thing
Games bought,sold,traded,played | as "just a cat"
http://www.scat.demon.co.uk/ | - Tanya Huff