程序員如何玩轉《衝頂大會》?

衝頂大會是最近很火的一款直播答題遊戲,天天指定時間開放,12 道題,每題 3 個選項,10 秒做答,全部通關者分享獎金(每場獎金五萬元或十萬元),邀請好友能夠得到復活資格。相似的遊戲還有不少好比頭條、映客、花椒直播等都推出了本身的答題遊戲,這類模式的鼻祖是美國去年 8 月上線的 HQ Trivia。python

看到這你可能會想,這尼瑪不就是《開心辭典》搬到手機上了嗎?這也能賺錢?沒錯,就是這樣。git

我這幾天玩了幾場,通過觀察發現每場人數在三十萬到五十萬之間,如今互聯網流量這麼貴,花幾萬塊錢就能在這麼短期帶來這麼多用戶,至關值啊。羅振宇在跨年演講時引用了德魯克的一句話:「對創新的最大讚美,莫過於人們說——這太顯而易見了,爲何我就沒有想到呢?」,我想直播答題就是這樣的現象級創新產品,並且它還有不少很是值得探索的盈利模式。程序員

道高一尺,魔高一丈,咱們看看有哪些能夠 Hack 的方法。github

題目出現再去搜索確定是來不及的(除非你單身 40 年的手速),廣大人民的做弊策略也是層出不窮。最簡單的是一羣人一塊兒玩,能夠利用網絡延遲有多幾秒的讀題時間,遇到不會的每一個人分開選,這樣你只須要 3^12=531441 臺手機便可通關。還可使用兩臺設備,一個手機等主播讀題,另外一個利用百度的語音搜索也能查出答案,可是感受這種速度要比較慢。web

那麼程序員應該如何玩呢?json

首先用 WDA 來獲取屏幕截圖。WDA 本是 Facebook 開發的一套 iOS 測試框架,前幾天看見你們都用來作微信「跳一跳」的外掛,便特地去了解了一下,發現也能用在衝頂大會上。api

以後 crop 出題目所在的位置(可能須要適配手機屏幕),而後調用開放的 OCR 接口讀取出文字文本,最後調用搜索引擎,就能夠達到以前 gif 圖的效果。這套環境是 iOS + Mac,若是是安卓應該有更方便的方法。微信

其實最初的想法是但願搜索+選擇答案所有自動化完成的,思路是 OCR 題目和候選答案,組成三個組合扔到百度或谷歌裏搜索,而後哪一個組合的結果出現次數最多就選擇哪一個。試了幾個問題後發現並非這樣,好比上面圖片的「駱駝的駝峯是存儲什麼的?」,可能多數人都會認爲是水,所以出現的次數最多,實際上是錯誤答案。網絡

最後還有兩個痛點:框架

  1. 免費 OCR 接口調用次數有限,因此不能一直去截屏識別,只能等題目出現時運行程序。
  2. 官方也很套路,有的問題是無法搜索的。。好比這種:

附上代碼,不知你們有沒有更好的想法:

# python3
import wda
import io
import urllib.parse
import webbrowser
import requests
import time
import base64
from PIL import Image

c = wda.Client()
# 百度OCR API
api_key = ''
api_secret = ''
token = ''


while True:
    time.sleep(0.5)
    c.screenshot('1.png')
    im = Image.open("./1.png")
    region = im.crop((75, 315, 1167, 789)) # iPhone 7P
    imgByteArr = io.BytesIO()
    region.save(imgByteArr, format='PNG')
    image_data = imgByteArr.getvalue()
    base64_data = base64.b64encode(image_data)
    r = requests.post('https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic',
                      params={'access_token': token}, data={'image': base64_data})
    result = ''
    for i in r.json()['words_result']:
        result += i['words']
    result = urllib.parse.quote(result)
    webbrowser.open('https://baidu.com/s?wd='+result)
    break
複製代碼

Source: livc.io/blog/204

相關文章
相關標籤/搜索