如今很火的答題贏錢遊戲,讓我來簡單教你怎麼作自動答題器

1、前言:

如今最火的直播遊戲,那就是答題贏錢直播了,如百萬英雄、芝士超人、花椒直播、衝頂大會等等,這些遊戲的玩法都很簡單,答對12題便可瓜分獎金了。玩法雖然簡單,可是要能徹底答對12題難度仍是挺高的,畢竟要很是廣的知識面!html

 

2、怎麼作自動答題?

要能自動答題,確定是要能知道題目及答案了。題目能夠從直播界面獲取,方法就是OCR或者搞到數據接口了………嘿嘿,都說了簡單教你,因此OCR或者分析數據接口這些複雜的操做,我確定不教你了(我也不會啊^_%)……shell

 

幸虧,如今市面上有一些很是有技術「逼格」的公司都在趁答題熱度,推出了答題助手之類的APP軟件,好比百度的《簡單搜索》、搜狗的《旺仔答題》、阿里UC的答題助手等等……它們都實現了答題功能,可是,因爲它們只是輔助的助手,它們並不會自動幫你答題,只是會分析出題目,而後用AI與大數據分析出可能性較高的答案項!因此並不能保證100%的正確率!雖然不能保證100%正確率,但有時「運氣好」(AI也要運氣?哈哈…如今的AI仍是有點LOW了…)仍是能徹底答對12題的!app

 

3、教你作自動答題器

上面的幾個助手中,我用了百度的《簡單搜索》APP,由於它支持多家的答題遊戲!爲了保證人家的APP的使用量,仍是厚道點直接使用它的APP吧,不要偷人家的接口數據,但不「偷」接口數據咱們要怎麼從它的APP裏獲取獲得題目和答案數據呢?ide

用最古老但又最有效的方法,咱們搭個HTTP代理,這樣APP的HTTP請求都會優先通過咱們代理,不用任何「暴力」,咱們就光明正大的「偷窺」到了「簡單搜索」的接口數據!函數

搭HTTP代理服務而且能對請求會話及數據進行分析處理的,確定是用開發與測試都愛用的強大的Fiddler軟件了!post

電腦下載安裝好Fiddler,而且開啓容許遠程訪問功能,以下圖:測試

 

因爲百度簡單助手的接口請求是採用了HTTPS方式,爲了能直接在Fiddler裏分析出接口數據,咱們還要開啓HTTPS的解碼功能,以下圖:大數據

 

開啓後會在你本地電腦安裝一個調試證書,你接受安裝就能夠了(這調試證書的做用就是會替換掉APP請求交互用的證書)。藍色箭頭那個選項,隨便你選了。ui

 

弄好上面的後,就進入咱們最核心的一步了,「偷窺到數據後自動向手機提交答案」!,利用Fiddler的 Script 功能,就能很是的輕鬆作到,以下圖:url

 

Fiddler裏捕獲的全部會話請求都會執行Script的代碼,因此利用這一功能,咱們可在Script 實現「答案偷窺」功能,當請求會話接收到遠程服務端的數據返回響應後OnBeforeResponse函數會被調用,所以咱們可在這函數裏增長咱們想要作的功能代碼,完整代碼以下:

    static function GetTextLength(text : String) : int{
        return System.Text.Encoding.GetEncoding("gb2312").GetByteCount(text);
    }
        
    static function GetItemValue(text : String, key : String) : String{
        var pattern =  key + "\":\"?([^\",}]+)\"?";
        var m = Regex.Match(text, pattern);
        var v = m.Success ? m.Groups[1].Value : null;
        FiddlerObject.log(key + " >>>>" + v);
        return v;
    }

    static var questionId : String = "";
    static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        if(oSession.url.IndexOf("secr.baidu.com/nv/answer.sock") >= 0){
            var text = oSession.GetResponseBodyAsString();
            FiddlerObject.log(oSession.url);
            FiddlerObject.log(text);
            
            var title = GetItemValue(text, "text");
            var step = GetItemValue(text, "step");
            
            //step=2時才表示是最終認爲正確率最高的答案,有時題目出現復活卡文字時表示百度的OCR出現識別錯了 :(
            if(title != null && title.IndexOf("復活卡") == -1 && "2" == step){
                var app = GetItemValue(text, "app");
                var qId = app + "_" + GetItemValue(text, "questionId");
                //答案(0-2)
                var r = GetItemValue(text, "result");
                
                //flag用於處理只提交一次答案
                var flag = qId != questionId;
                if(r != null && flag){
                    questionId = qId;
                    FiddlerObject.log(questionId + ">>選擇答案:" + (char)(65 + int.Parse(r)));
                    var x = 0, y = 0;
//計算題目長度,部分APP的題目顯示換行時致使答題項的座標值跟隨改變
var len = GetTextLength(title); //取得手機APP裏答題項的位置座標(不一樣屏幕的手機座標值不同) if(app == "huajiao"){ if(r == "0"){ x = 540; y = 720; }else if(r == "1"){ x = 540; y = 880; }else if(r == "2"){ x = 603; y = 1040; } var m = len / 28; y = y + (m * 100); }else if(app == "xiguashipin"){ if(r == "0"){ x = 565; y = 690; }else if(r == "1"){ x = 565; y = 850; }else if(r == "2"){ x = 565; y = 1020; } //var m = len % 36; //y = y + (m * 80); }else if(app == "chongdingdahui"){ if(r == "0"){ x = 550; y = 552; }else if(r == "1"){ x = 550; y = 690; }else if(r == "2"){ x = 550; y = 830; } var m = len / 36; y = y + (m * 100); }else if(app == "zhishichaoren"){ if(r == "0"){ x = 558; y = 509; }else if(r == "1"){ x = 558; y = 686; }else if(r == "2"){ x = 558; y = 845; } var m = len / 29; y = y + (m * 70); } if(x != 0){ FiddlerObject.log(String.Format("已傳送答案>>>>{0} * {1}", x, y)); //調用adb命令用於向手機發送點擊命令 var startInfo = new System.Diagnostics.ProcessStartInfo("adb", String.Format("shell input tap {0} {1}",x, y)); startInfo.CreateNoWindow = false; System.Diagnostics.Process.Start(startInfo); } } } } }

 

代碼實現很簡單,上面代碼的註釋,一看就懂,但有一點就是,不一樣手機上面的X,Y座標值可能要改動,上面只是我手機(1920x1080)的適配座標值。

 

四:開始自動答題之旅吧

A、咱們首先要將上面的《簡單搜索》APP跑起來而且還要讓它經過咱們上面的Fiddler代理,由於《簡單搜索》是APP,因此咱們就讓它運行在手機裏或者安卓模擬器裏,再設置一下手機或者模擬器的WIFI代理便可。

B、運行答題APP的手機還要開啓USB調試功能,而且用USB線鏈接上剛纔開啓Fiddler代理的電腦,運行adb deivices命令能找到鏈接的手機就表示正常。

C、答案開始前先進入《簡單搜索》對應的答題遊戲的題目區頁面,好比「百萬英雄」,再開啓對應答題遊戲APP。

通過以上步驟後,就讓電腦自動幫你答題吧:)

 

,固然,答案是否準確就要看百度的AI了:),有時仍是能成功的,如我此次的闖關,拿到了4元喲。。

 

5、後話

其實這類遊戲,娛樂一下就好,不要沉迷在裏面,想在裏面「贏」大錢是不可能的,畢竟這裏面確定存在貓膩的。如爲考慮運營成本,好比A場說提供300W獎金,無論最終有多少真人闖關成功,都會加總獎金10%的機器人(虛擬人),這樣保證最後真人每人拿的獎金最高不會到10塊錢,好比有5W真人成功闖關(實際真的能有這麼多真人能徹底答對12題?),每人最高可分得獎金只有8.6塊左右,這樣實際成本只有42W多。用42W的實際成本去作一個300W噱頭的營銷運營,是很是值得的!

以上只是我的猜想

 

附我的推廣,家裏有安卓電視盒子的,可關注一下個人這款軟件,Thx。

電視盒子好用又強大的跨屏遠程輸入法 TVRemoteIME

相關文章
相關標籤/搜索