Technical Overview

There are four primary components supporting between 1 and 3 interfaces each.

GeneticalAlgorithm (ga)
interface Evolve

ef evolve(int numGenerations)

EvaluationFunction (ef)
interface Grow

int evalCreature()
creature mutate()
int distance(creature c)
creature breed(creature c)
interface EvalBoard

double evalBoard(game &g)

GameEngine (ge)
interface Play

int selfPlay(game &g, eb &e1, eb &e2)
move nextMove(game &g, eb &e, bool fMax, int depth, move &m, bool fShowThinking)

CheckersBoard (cb)
interface Game

list<move> getLegalMoves(cb c)
int makeMove(move &m, bool fShowMove, bool fRecord)
int whoWon()
int isLegal(move &m)
void takeBack(bool fShowMove)
interface StateFncs

int getNumStateFncs()
int getValidParams(int fn_num)
int getState(int fn_num, int param)