自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序員給“沖頂大會”做了個外掛,輕松瓜分100萬獎金!

新聞
2018 年 1 月 3 日,王思聰被迫動用自己的微博,為一個誕生不到 10 天的 APP 打了廣告,“每天我都發(fā)獎金,今晚 9 點就發(fā) 10 萬”。

2018 年 1 月 3 日,王思聰被迫動用自己的微博,為一個誕生不到 10 天的 APP 打了廣告,“每天我都發(fā)獎金,今晚 9 點就發(fā) 10 萬”。

[[216906]]

對他而言,這天的微博并非生日宴會,而是戰(zhàn)場。王思聰?shù)囊粍t微博開啟了“全民競答”類 APP 的爆紅之路。

一時間,直播巨頭們都跟上“王校長”的節(jié)奏,“沖頂大會”之外,映客旗下的“芝士超人”、今日頭條旗下的“百萬英雄”和花椒直播旗下的“百萬作戰(zhàn)”紛紛亮相,每天狂撒百萬現(xiàn)金。

“沖頂大會”、“芝士超人”、“百萬英雄”等知識競答游戲火了,獎金數(shù)額也從最初的人民幣 5 萬、10 萬漲到了 100 萬、甚至更高......

沖頂大會是直播答題游戲,每天指定時間開放,12 道題,每題 3 個選項,10 秒作答,所有通關者分享獎金(每場獎金五萬元或十萬元),邀請好友可以獲得復活資格,這類模式的鼻祖是美國去年 8 月上線的 HQ Trivia。

為了能夠全部答對 12 道題,平分數(shù)額如此龐大的獎金池,參賽者開始想方設法提高自己答題的正確率。

我們看看有哪些可以 Hack 的方法?

題目出現(xiàn)再去搜索肯定是來不及的(除非你單身 40 年的手速),廣大人民的作弊策略也是層出不窮。

最簡單的是一群人一起玩,可以利用網(wǎng)絡延遲有多幾秒的讀題時間,遇到不會的每個人分開選,這樣你只需要 3^12=531441 臺手機即可通關。

正如節(jié)目主持人介紹的一樣,許多答題者開始尋找身邊的朋友共同答題,以求覆蓋到更多類型的知識點,提高通關的幾率。

于是,各種各樣的微信、QQ 答題群誕生,每個人都在群聊里分享自己認為正確的答案。

[[216907]]

還可以使用兩臺設備,一個手機等主播讀題,另一個利用百度的語音搜索也能查出答案,但是感覺這種速度要比較慢。

道高一尺,魔高一丈,讓你猜不到的是,答題游戲居然也有外掛了!已經(jīng)有程序員設計了“輔助程序”,用于快速檢索答案。

這個用 Python 程序可以修剪并識別圖片中的文字內(nèi)容(問題和選項),然后通過百度進行搜索關鍵字出現(xiàn)的次數(shù),***將統(tǒng)計的信息展示出來。

這樣一來,答題者就可以根據(jù)統(tǒng)計數(shù)據(jù)來選擇相應的答案,極大提高了答題的正確率。

[[216908]]

那么程序員到底應該如何玩呢?

用 Python 玩轉(zhuǎn)《沖頂大會》

首先用 WDA 來獲取屏幕截圖,WDA 本是 Facebook 開發(fā)的一套 iOS 測試框架,前幾天看見大家都用來做微信“跳一跳”的外掛,便特意去了解了一下,發(fā)現(xiàn)也能用在沖頂大會上。

之后 crop 出題目所在的位置(可能需要適配手機屏幕),然后調(diào)用開放的 OCR 接口讀取出文字文本。

***調(diào)用搜索引擎,就可以達到之前 gif 圖的效果。這套環(huán)境是 iOS + Mac,如果是安卓應該有更方便的方法。

最初的想法是希望搜索+選擇答案全部自動化完成的,思路是 OCR 題目和候選答案,組成三個組合扔到百度或谷歌里搜索,然后哪個組合的結果出現(xiàn)次數(shù)最多就選擇哪個。

試了幾個問題后發(fā)現(xiàn)并不是這樣,比如上面圖片的“駱駝的駝峰是存儲什么的?”,可能多數(shù)人都會認為是水,因此出現(xiàn)的次數(shù)最多,其實是錯誤答案。

***還有兩個痛點:

  • 免費 OCR 接口調(diào)用次數(shù)有限,所以不能一直去截屏識別,只能等題目出現(xiàn)時運行程序。
  • 官方也很套路,有的問題是沒法搜索的。比如下圖中這種:

[[216909]]

***附上代碼:

  1. # python3 
  2. import wda 
  3. import io 
  4. import urllib.parse 
  5. import webbrowser 
  6. import requests 
  7. import time 
  8. import base64 
  9. from PIL import Image 
  10.  
  11. c = wda.Client() 
  12. # 百度OCR API 
  13. api_key = '' 
  14. api_secret = '' 
  15. token = '' 
  16.  
  17.  
  18. while True
  19.    time.sleep(0.5) 
  20.    c.screenshot('1.png'
  21.    im = Image.open("./1.png"
  22.    region = im.crop((75, 315, 1167, 789)) # iPhone 7P 
  23.    imgByteArr = io.BytesIO() 
  24.    region.save(imgByteArr, format='PNG'
  25.    image_data = imgByteArr.getvalue() 
  26.    base64_data = base64.b64encode(image_data) 
  27.    r = requests.post('https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
  28.                      params={'access_token': token}, data={'image': base64_data}) 
  29.    result = '' 
  30.    for i in r.json()['words_result']: 
  31.        result += i['words'
  32.    result = urllib.parse.quote(result) 
  33.    webbrowser.open('https://baidu.com/s?wd='+result) 
  34.    break 

用 Java 來玩百萬英雄

《百萬英雄》是一檔全民知識互動游戲,在《百萬英雄》里每場 12 道題目全部回答正確的人,將瓜分獎金。

Github 地址:https://github.com/lingfengsan/MillionHero

gitee 倉庫地址:https://gitee.com/lingfengsan/MillionHero

游戲模式

一共 12 道題,全部答對就可以平分獎金。

如果可以把直播中的問題和答案提取出來,然后百度,然后統(tǒng)計一下哪個更相關,就可以輔助你答題了。

當然也可以直接把百度出來的題目和答案都展示出來。算法還在優(yōu)化,以代碼中為準。

工具介紹

  • Java8
  • Android 手機
  • adb 驅(qū)動
  • idea

原理說明

  • 將手機點擊到直播界面(在這里我們先打開一張圖片)。
  • 用 adb 工具獲取當前手機截圖,并用 adb 將截圖 pull 上來。

adb shell screencap -p /sdcard/1.png

    adb pull /sdcard/1.png .

  • 用 tessOCR 進行圖像識別,提取文字。
  • 將文字中的問題和答案提取出來。
  • 使用百度搜索并統(tǒng)計搜索得到結果數(shù)量。

問題+各個答案count(q&a)

問題 count(q)

答案 count(a)

  • 計算匹配值 pmi: pmi[i]=count(q&a[i])/(count(q)*count(a[i]))。
  • 選擇 pmi 值***的為答案。

操作步驟

  • 安卓手機打開 USB 調(diào)試,設置》開發(fā)者選項》USB 調(diào)試。
  • 電腦與手機 USB 線連接,確保執(zhí)行 adb devices 可以找到設備 id。
  • 打開百萬直播。
  • 運行我們的 Java 程序,當彈出題目時,輸入 1 回車。

注意程序中的 adb 驅(qū)動目錄要更換成自己的目錄,我的屏幕是 1920*1080,如果是別的分辨率,暫時需要修改一下代碼中的圖片參數(shù)等。

實驗結果

PS:無奈本人在出差,筆記本速度和網(wǎng)速都比較慢,比較好的電腦和網(wǎng)速肯定能有很大的提升。

TODO

可以增加一個圖形化界面,分別對題目和答案進行搜索并進行展示。

常見問題

  • 項目構建問題:IDE 建議用 idea,從 Github 導入后,在右側的 Maven project 中添加目錄根部的 pom.xml 文件即可。
  • tessOCR:只是調(diào)用了一下,在 pom 已經(jīng)導入了使用的工具包,訓練機在 tessdata 里面,不需要配置。
  • adb 驅(qū)動相關:使用 adb 需要對應的手機驅(qū)動的。最簡單驗證 adb 的方法是在 adb 目錄里面打開命令行輸入 adb devices 看下有沒有設備,有的話即可。

由此可見,程序員是這個世界上最厲害、最單純的一個群體,他們總是能把世界上所有的問題用程序員的方法去解決。大家還有什么其他的玩法嗎?歡迎留言分享~

責任編輯:武曉燕 來源: blog
相關推薦

2021-07-05 07:28:14

程序員菜鳥技術

2011-05-13 14:34:02

程序員

2020-08-20 08:11:15

程序員技術網(wǎng)絡

2021-01-04 08:09:30

女程序行業(yè)同行

2020-08-10 06:22:02

繪圖命令dot

2018-06-07 16:20:56

代碼代碼質(zhì)量程序員

2011-08-02 08:59:02

程序員

2016-03-11 09:36:52

程序員頂級職業(yè)建議

2020-10-05 21:13:37

程序員技能開發(fā)者

2018-01-12 14:46:01

沖頂大會答題代碼

2017-03-23 14:07:55

代碼程序員

2019-05-14 09:18:18

程序員PythonJava

2024-07-10 10:25:15

2015-10-29 09:50:36

程序員免費編程圖書

2017-12-08 19:55:43

程序員美團年終獎金

2019-04-08 09:37:30

國內(nèi)程序員美國程序員996.ICU

2019-12-04 12:33:48

程序員技術設計

2021-08-28 23:26:14

程序員編碼電腦

2020-09-18 15:28:43

信息安全數(shù)據(jù)技術

2022-08-21 21:39:06

程序員建議
點贊
收藏

51CTO技術棧公眾號