【為生活開發系列之五】開源Android福彩號碼對比助手

Roll圈圈發表於2018-06-01

重要

最近有朋友在應用市場上看到了此App被上架,問我是不是我上架的,我說不是我上架的。

我在此宣告,在沒有經過我的授權的情況下,請任何人不要修改後提交應用市場,請尊重別人的勞動成果。

我在此宣告,在沒有經過我的授權的情況下,請任何人不要修改後提交應用市場,請尊重別人的勞動成果

我在此宣告,在沒有經過我的授權的情況下,請任何人不要修改後提交應用市場,請尊重別人的勞動成果

對於這種侵權行為,我勢必會追究到底的。在此告誡那些不勞而獲的人,請不要踐踏別人的勞動成果。

前言

前兩天去吃飯,回來的路上經過賣彩票的,順手就買了幾張,想著萬一運氣好中個500萬呢!哈哈,今天早上想起來這件事,看了一下藍號,沒有一個是一樣的,然後,我想著6+0好像也還不錯,起碼也是二等獎,對著中獎號碼一個一個比對,15組號碼看著我頭都大了,我這暴脾氣……然後它就成這樣了。

我這暴脾氣

為了以後對彩票的時候不這麼痛苦,於是著手開發了一個專門檢查彩票有沒有中獎的App-【福彩號碼對比助手】,這樣以後就不用傻頭傻腦的對著中獎號碼比對了,哈哈,經過大半天的努力,成果如下:

效果圖

功能及流程介紹

  • 拍照及裁剪

    呼叫相機將購買的彩票拍下來,然後對拍成的照片進行裁剪,裁剪的目的是為了突出重點,我們的重點就是購買的彩票的號碼區域和開獎期,縮小範圍的目的是提高圖片的識別成功率,包含開獎期是為了自動識別開獎期,這樣可以少讓使用者手動輸入開獎期(這個後面會提到)。

  • 圖片文字識別

    對剛剛裁剪的圖片進行文字識別,文字的識別還是使用百度雲的文字識別,傳送門--百度雲文字識別快速入門,連結是 https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.html#.E5.BF.AB.E9.80.9F.E5.85.A5.E9.97.A8

  • 識別後的文書處理

    這一塊比較麻煩,因為呼叫百度雲的文字識別之後,返回的資料比較亂,我們需要篩選出我們需要的文字,並對文字進行處理。

    首先百度雲識別的文字會以字串集合的方式返回給我們,它主要是以塊來進行文字識別,每一小塊識別的文字作為一個整體返回,所以我們要從這些塊兒中選出我們需要的內容。

    我們只關注兩個點,一個是購買的幾組號碼,另外一個是開獎期。

    單注號碼

    首先我們發現,不論單張購買幾注號碼,每一注號碼都會按照如下的格式輸出:

    A.02 03 07 12 13 17 + 16 X1

    首先是以大寫字母加.開頭 然後是連著6組兩位數的紅色號碼,然後是“+”,“+”後面是兩位數的藍號,再後面是“x”+購買的注數。有了這些規律,我們就可以書寫對應的正規表示式了:

    ^[A-Z].[0-9]{12}+?[0-9]{2}x?[0-9]+$

    我們首先對這個正則做一個簡單的解釋:

    字串以A-Z中一個字母加.開始,接著有12位0-9的數字(這個是6個紅號),然後有0個或者1個“+”(為什麼是0到1個呢,因為經過測試,有時候可能會識別不出“+”號,為了識別的準確率,我們不對這個“+”做強制處理),然後是2位的0-9的數字(這個是藍號),然後是0個或者1個“x”(跟前面的“+”是一樣的,為了提高識別率),最後就是購買這個號碼的注數了,1到多個0-9的數字(指1到n)。

    這個正規表示式可以過濾出我們需要的文字,如果滿足這個正則表示這一條資料是我們買的一組號碼。

    開獎期

    對於開獎期來說就比較簡單了,只需要字串的前三個字元是“開獎期”就好了,因為如果識別不出來,使用者也可以手動輸入,都ok,無傷大雅,如果識別出來了,我們就直接幫使用者填入輸入框中,這樣使用者就不用自己輸入了,如gif所示。

  • 獲取本期彩票中獎號碼

    我們已經識別出我們彩票上的號碼了,現在需要獲取到本期中獎的號碼,然後進行比對,看是否中獎。我們使用的是showapi上的一個免費的介面,彩票開獎查詢,連結:https://www.showapi.com/api/lookPoint/44,使用這個介面我們可以獲取最新的開獎資訊,也可以獲取到指定期號的中獎號碼。具體使用大家可以點連結進去悄悄。

  • 比對號碼獲取中獎資訊

    中獎號碼和你購買的號碼都已經拿到了,剩下的就是對比號碼是不是符合的了,這個比較簡單了,就不再贅述,下面貼出福彩中獎規則:

    • 一等獎:7個號碼相符(6個紅色球號碼和1個藍色球號碼)(紅色球號碼順序不限,下同)
    • 二等獎:6個紅色球號碼相符;
    • 三等獎:5個紅色球號碼和1個藍色球號碼相符;
    • 四等獎:5個紅色球號碼,或4個紅色球號碼和1個藍色球號碼相符;
    • 五等獎:4個紅色球號碼,或3個紅色球號碼和1個藍色球號碼相符;
    • 六等獎:1個藍色球號碼相符(有無紅色球號碼相符均可)。
  • 2018年06月01日更新 新增對匹配結果的反顯效果,中獎結果更明顯,效果如下:

反顯效果

相關連結

專案已經開源,希望能幫到你,也希望愛買彩票的你早日中獎。另外,由於時間比較緊,所以程式碼可能有點亂,大家將就一下! LotteryHelper 連結是 https://github.com/MZCretin/LotteryHelper

如果你周圍有朋友喜歡買福彩的,可以推薦他使用,他肯定需要的,畢竟高效,綠色,無公害!另外大家也可以直接下載APK體驗一波,Apk下載地址,請複製連結在瀏覽器中開啟進行下載,連結 http://jokesimg.cretinzp.com/common/lotteryhelper/apk/fcdhzs.apk,也可以用手機掃描下方二維碼進行下載體驗:

apk下載二維碼,瀏覽器掃一掃

今天晚上九點等到開獎之後,我興奮的用App檢測了我買的15注號碼,就中了一注藍號的,只有5塊錢,僅以最開頭的那張圖紀念年少無知的我買了5張彩票,哈哈哈。

關於我的

我就是比較喜歡用程式碼解決生活中的問題,感覺很開心,哈哈哈。也喜歡大家關注我的簡書,掘金,Github和CSDN。

簡書首頁,連結是 https://www.jianshu.com/u/123f97613b86

掘金首頁,連結是 https://juejin.im/user/5838d57fac502e006c1708bc

Github首頁,連結是 https://github.com/MZCretin

CSDN首頁,連結是 http://blog.csdn.net/u010998327

我是Cretin,一個可愛的小男孩。

相關文章