AI* AIFactory::CreateMoveOrderingAlfaZorbristAI() { AI* result = CreateMoveOrderingAlfaAI(); result->AddExtension(new TranspositionExtension(_hasher, _table)); return result; }
AI* AIFactory::CreateAlfaAI(){ AI* result = new AI(_board, _maxDepth); result->AddExtension(new AlfaBetaExtension()); return result; }
AI* AIFactory::CreateMoveOrderingAlfaAI(){ AI* result = CreateAlfaAI(); result->AddExtension(new MoveOrderExtension()); result->AddExtension(new MoveSwapExtension()); return result; }
AI* AIFactory::CreateAI(){ AI* result = new AI(_board, _maxDepth); result->AddExtension(new MiniMaxExtension()); return result; }