【为生活开发系列之五】开源Android福彩号码对比助手

综合技术 简书 (源链)

前言

前两天去吃饭,回来的路上经过卖彩票的,顺手就买了几张,想着万一运气好中个500万呢!哈哈,今天早上想起来这件事,看了一下蓝号,没有一个是一样的,然后,我想着6+0还想也还不错,对着中奖号码一个一个比对,看着我头都大了,我这暴脾气,XXXXXXX,然后他就成这样了。

我这暴脾气

为了以后对彩票的时候不这么痛苦,于是着手开发了一个专门检查彩票有没有中奖的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个蓝色球号码相符(有无红色球号码相符均可)。

相关链接

项目已经开源,希望能帮到你,也希望爱买彩票的你早日中奖。

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,一个可爱的小男孩。

您可能感兴趣的

将自己的项目发布到jcenter 起因 Android 开发的各位小伙伴,一定对gradle的compile不陌生。我们日常开发中必然要引入很多的类库(如okhttp,Glide,retrofit,rxjava等等),进行项目支持。 那我们是不是也可以自己写一些类库,让别人使用?这个一定很酷!退一步来说,我们可以将自己的mo...
最简洁的Handler介绍 最简洁系列介绍:对于理科生来说有条理的知识结构更便于记忆和学习与理解,比起无比详细的文章和成段的代码,知识框架更容易分析问题和定位问题。这系列的文章现在还在尝试阶段,如果您有好的意见,欢迎交流! 一、解决问题 1、理解Handler原理; 2、一个线程里面可以有多少个Looper,多少个...
Announcing Caddy Commercial Licenses Today, we're pleased to unveil something we've been working diligently on for the past few months: Caddy Commercial Licenses. This change is designed ...
Built-in Oracle internal and external valid combin... Internal and external storage Android I have an app that accesses music and I had at least one user complain that some of his so...
Android事件分发机制 :) 来自网络,侵删 简介 本文介绍了用户的点击事件分发到指定的控件的大概流程。android的事件分发也不是几句话就能说清,后文我尽量简单的阐述分发的过程。 开始介绍之前希望读者有以下的意识: Android界面里面的控件是按照...
简书责编内容来自:简书 (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 【为生活开发系列之五】开源Android福彩号码对比助手



专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录