Hi,
I also did computer chess before go (and checkers before chess). I would
start with a straight-forward implementation and learn with it. If you end
up finding your board representation limiting, rewrite it.
Here's some code from my program:
int const N = 19;
int const XN = N + 2;
int const XN2 = XN * XN;
enum class Color : char {
Empty, Black, White, Outside
};
inline bool is_occupied(Color c) {
return c == Color::Black || c == Color::White;
}
inline Color enemy(Color c) {
return c == Color::Black ? Color::White : c == Color::White ?
Color::Black : Color::Empty;
}
struct Board {
Color array[XN2];
int chain_id[XN2];
int chain_size[XN2];
int chain_liberties[XN2];
int next_in_chain[XN2];
int age[XN2];
[...]
On Sun, Apr 10, 2016 at 3:19 AM, Jean-Francois Romang <[email protected]>
wrote:
> Hello to everyone ; I'm a newcomer in this list and computer go
> programming. I have a chess programming background, but I want to start
> something new. :-)
> I'm currently in the early phases of developing GTP compatible go engine ;
> now it's time for me to choose a board representation : are there some
> articles or tips on this ?
> Thanks,
> Jean-Francois
> _______________________________________________
> Computer-go mailing list
> [email protected]
> http://computer-go.org/mailman/listinfo/computer-go
_______________________________________________
Computer-go mailing list
[email protected]
http://computer-go.org/mailman/listinfo/computer-go