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...
Snippets of code should be wrapped in
<code> tags not<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor