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

4,531 阅读6分钟

重要

最近有朋友在应用市场上看到了此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.cn/user/1099167356171918

Github首页,链接是 https://github.com/MZCretin

CSDN首页,链接是 http://blog.csdn.net/u010998327

我是Cretin,一个可爱的小男孩。