Untitled
unknown
plain_text
2 years ago
709 B
7
Indexable
int minimax(State *state, int depth, int maximize){
auto actions = state->legal_actions;
int val = 0;
if(depth == 0){
return state -> evaluate();
}
if(maximize){
val = INT_MIN;
for(size_t i = 0; i < actions.size(); i++){
State *s = state -> next_state(actions[i]);
int tmp = minimax(s, depth - 1, 0);
if(tmp > val) val = tmp;
if(val == INT_MAX) return val;
}
}else if(!maximize){
val = INT_MAX;
for(size_t i = 0; i < actions.size(); i++){
State *s = state -> next_state(actions[i]);
int tmp = minimax(s, depth - 1, 1);
if(tmp < val) val = tmp;
if(val == INT_MIN) return val;
}
}
return val;
}Editor is loading...