in reply to OO vs. global variables...
Here's my contribution :
"Only Bad Coders Code Badly In Perl" (OBC2BIP)
- Will you need more than one board
Not necessary, I remember I coded a (REALLY SIMPLE) chess engine using only one 'state' (to save memory), the 'trick' was to play and un-play move while navigating the tree. - Use Alpha-beta or even better sorted alpha-beta rather than simple min-max
(you compute an alpha beta on 2*n half-moves sort the move based on this result and then launch a deeper alpha-beta on 2*(n+x) half-moves, the ordered moves will help you cut quicker in the tree) - Tilly is right (as usual). The key is in the theory for the crunching power won't be enough for a game like go.
You should especially use it to craft well your evaluation function (the one which rates the 'states') for it is the heart of your engine...
- A Good trick to optimize your settings (evaluation function for example) is to make your engine play against another engine with different (random ? GA produced ? partially hand crafted ?) settings , keep the best setting at each step and iterate...
"Only Bad Coders Code Badly In Perl" (OBC2BIP)
In Section
Seekers of Perl Wisdom