interfaces - adQuid/DecentAI GitHub Wiki

There are 7 components that need to be created in order to integrate your game with Decent AI.

Game, used to store the model of a game state.

GameCloner, called by Decent AI to get a deep copy of your Game objects.

Player, used to represent one player, and what actions that player is set to take this turn. This is used by the AI to communicate with your game model what players intend to do, and the structural equality via equals() is used to determine who the AI is between copied versions of the same game.

Action, a simple model used to communicate between the AI and your game. These MUST be immutable.

IdeaGenerator, used to tell the AI what are legal actions it could try to take.

ContingencyGenerator, like the Idea Generator, but for other players.

GameEvaluator, used to "score" a game state so the AI knows if it's winning or losing.