}best_val = +INFINITY;::list<int> move_list;_moves(_board, move_list);(!move_list.empty()) {
_player.symbol == 'X' ? cSymbol = 'O' : cSymbol = 'X';
_board[move_list.front()] = cSymbol;val = MaxMove(_board, _player);(val < best_val) {_val = val;
}
_board[move_list.front()] = 0;_list.pop_front();
}best_val;
}MaxMove(char _board[9], player _player) {pos_value = evaluate_position(_board, _player);(pos_value != -1) {pos_value;
}best_val = -INFINITY;::list<int> move_list;_moves(_board, move_list);(!move_list.empty()) {
_player.symbol == 'X' ? cSymbol = 'X' : cSymbol = 'O';
_board[move_list.front()] = cSymbol;val = MinMove(_board, _player);(val > best_val) {_val = val;
}
_board[move_list.front()] = 0;_list.pop_front();
}best_val;
}