void FSM::eval() { process->updateInputs(); if (plugin != NULL) { plugin->evalCycle(); } evalEvents(); evalState(); process->applyOutput(); }
int MAX(treeNode * ptr, int alpha, int beta){ if(ptr->numChildren == 0){ return evalState(ptr->board); } int v = -1000; for (int i = 0; i < ptr->numChildren; i++){ v = greater(v, MIN(ptr->children[i], alpha, beta)); if (v >= beta){ ptr->evalVal = v; return v; } alpha = greater(alpha, v); } ptr->evalVal = v; return v; }
int MIN(treeNode * ptr, int alpha, int beta){ if(ptr->numChildren == 0){ return evalState(ptr->board); } int v = 1000; for(int i = 0; i < ptr->numChildren; i++){ v = less(v, MAX(ptr->children[i], alpha, beta)); if (v <= alpha){ ptr->evalVal = v; return v; } beta = less(beta, v); } ptr->evalVal = v; return v; }
void HeightProfileCheck::evalCycle() { evalEvents(); evalState(); }