/Go-Board

Very fast Go board with Monte-Carlo random playouts.

Primary LanguageC++MIT LicenseMIT

Go-Board

A very fast implementation of a Go board, with Monte-Carlo random playouts. It is implemented using generic programming concepts, with the aim of having a high-level structure without compromising performance. Profile guided optimisation is used for optimal branching avoiding the need to rearrange the order of branches manually.

Note: This version experiments with various concepts from Stepanov's "Elements of Programming" that are not strictly necessary for the go-board. The Ada version is a cleaner implementation, only using the abstractions necesssary for the board rather than some of the more generally applicable abstractions used in this version.