亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#開發答題贏錢游戲(自動答題器)

發布時間:2020-10-10 13:35:46 來源:腳本之家 閱讀:279 作者:Kingthy 欄目:編程語言

一、前言

現在最火的直播游戲,那就是答題贏錢直播了,如百萬英雄、芝士超人、花椒直播、沖頂大會等等,這些游戲的玩法都很簡單,答對12題即可瓜分獎金了。玩法雖然簡單,但是要能完全答對12題難度還是挺高的,畢竟要非常廣的知識面!

二、怎么做自動答題

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

幸好,現在市面上有一些非常有技術“逼格”的公司都在趁答題熱度,推出了答題助手之類的APP軟件,比如百度的《簡單搜索》、搜狗的《旺仔答題》、阿里UC的答題助手等等……它們都實現了答題功能,但是,由于它們只是輔助的助手,它們并不會自動幫你答題,只是會分析出題目,然后用AI與大數據分析出可能性較高的答案項!所以并不能保證100%的正確率!雖然不能保證100%正確率,但有時“運氣好”(AI也要運氣?哈哈…現在的AI還是有點LOW了…)還是能完全答對12題的!

三、教你做自動答題器

上面的幾個助手中,我用了百度的《簡單搜索》APP,因為它支持多家的答題游戲!為了保證人家的APP的使用量,還是厚道點直接使用它的APP吧,不要偷人家的接口數據,但不“偷”接口數據我們要怎么從它的APP里獲取得到題目和答案數據呢?

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

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

電腦下載安裝好Fiddler,并且開啟允許遠程訪問功能,如下圖:

C#開發答題贏錢游戲(自動答題器)

由于百度簡單助手的接口請求是采用了HTTPS方式,為了能直接在Fiddler里分析出接口數據,我們還要開啟HTTPS的解碼功能,如下圖:

C#開發答題贏錢游戲(自動答題器)

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

弄好上面的后,就進入我們最核心的一步了,“偷窺到數據后自動向手機提交答案”!,利用Fiddler的 Script 功能,就能非常的輕松做到,如下圖:

C#開發答題贏錢游戲(自動答題器)

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元喲。。

C#開發答題贏錢游戲(自動答題器)

五、后話

其實這類游戲,娛樂一下就好,不要沉迷在里面,想在里面“贏”大錢是不可能的,畢竟這里面肯定存在貓膩的。如為考慮運營成本,比如A場說提供300W獎金,不管最終有多少真人闖關成功,都會加總獎金10%的機器人(虛擬人),這樣保證最后真人每人拿的獎金最高不會到10塊錢,比如有5W真人成功闖關(實際真的能有這么多真人能完全答對12題?),每人最高可分得獎金只有8.6塊左右,這樣實際成本只有42W多。用42W的實際成本去做一個300W噱頭的營銷運營,是非常值得的!

總結

以上所述是小編給大家介紹的C#開發答題贏錢游戲(自動答題器),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丹县| 怀远县| 健康| 绵阳市| 益阳市| 南丰县| 兰溪市| 中超| 阳新县| 宁晋县| 本溪市| 博爱县| 晋中市| 横峰县| 北碚区| 东城区| 合川市| 平果县| 历史| 敖汉旗| 洞头县| 蚌埠市| 瑞昌市| 南靖县| 临高县| 蓬溪县| 德安县| 朔州市| 蓬安县| 沛县| 江源县| 贵德县| 泸溪县| 临猗县| 南部县| 交城县| 聂荣县| 龙门县| 岳普湖县| 额尔古纳市| 嫩江县|