This project has two purposes: I'm using it to teach myself Java and to learn about general game playing. Mainly, the Monte-Carlo tree search algorithms are used. Here is a good survey of Monte-Carlo techniques in relation to game playing.
I'm starting with testing the engines on Gomoku, because it has really simple rules, but my ultimate goal is to play some imperfect information games with chance.
All the main interfaces are defined in gamer/def
. A new game can be added by implementing the interfaces gamer.def.Game
, gamer.def.State
and/or gamer.def.PositionMut
(first is immutable, second is mutable) and gamer.der.Move
. To add a new playing engine, the ComputerPlayer
interface should be implemented.
There are working implentations of Gomoku and Chess. On the side of the engines, the most advanced one is MonteCarloUct
.