美文网首页开源项目Android 开源控件Android开发
【为生活开发系列之五】开源Android福彩号码对比助手

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

作者: Roll圈圈 | 来源:发表于2018-03-13 23:31 被阅读945次

    重要

    最近有朋友在应用市场上看到了此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,一个可爱的小男孩。

    相关文章

      网友评论

      • 菜鸟程序开发工程师:666 @电点mxn 太棒了
        Roll圈圈:哈哈哈,谢谢鼓励
      • 七岁就狠拽:额, 还以为是用tesseract自己训练库的...百度云识别收费的吧, 免费的有挺多限制的
      • 林天佐:太棒啦,赞
        Roll圈圈:@林天佐 哈哈 谢谢
      • 离从前慢:我想说,大兄弟,咱俩真是有缘哦哈哈晚点跟你私聊下
      • Solang:厉害了老铁,处理成文字之后有什么用呢
        Roll圈圈:@Solang 处理成文字之后,再联网获得当前这期彩票的中奖号码,然后比对识别出来的彩票号码,看你购买的号码是否中奖,把结果直观的显示在你面前

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

      本文链接:https://www.haomeiwen.com/subject/eantqftx.html