java请选择英雄怎么用代码写_教你用JAVA来玩百万英雄答题(增加打开网页功能)...

5dfdb3b1586c

转载:本文首发于【知乎】,作者: 聆风散  西安电子科技大学  通信工程

Tips:全文898字,阅读时间3分钟

《百万英雄》是一档全民知识互动游戏,在《百万英雄》里每场12道题目全部回答正确的人,将瓜分奖金。

后续更新在我的github上,欢迎大牛前来P.R:

Update

2018-01-10 :现在会单独为问题打开一个网页进行展示搜索结果

2018-01-10 : 一直读取图片的话会报异常,现在改为输入回车才回开始。更加稳定 尝试了一下午汉王的OCR,识别率还是比较低啊。 但是tessOCR运行时间确实有点长了。有好的OCR推荐下

2018-01-09 : 修改了启用多线程后带来的bug,新增gitee仓库地址(国内下载更快)

常见问题

1、项目构建问题:

IDE建议用idea,从github导入后,在右侧的Maven project中添加目录根部的 pom.xml文件即可。

2、tessOCR:

只是调用了一下,在pom已经导入了使用的工具包,训练机在tessdata里面,不需要配置。

3、ADB驱动相关:

使用ADB需要对应的手机驱动的。最简单验证ADB的方法:

在adb目录里面打开命令行输入 adb devices 看下有没有设备,有的话即可。

游戏模式

一共12道题,全部答对就可以平分奖金

5dfdb3b1586c

如果可以把直播中的问题和答案提取出来,然后百度,然后统计一下哪个更相关,就可以辅助你答题了。当然也可以直接把百度出来题目和答案都展示出来。本文用的第一种简单粗暴。

工具介绍

JAVA8

Android 手机

Adb 驱动

原理说明

将手机点击到直播界面(在这里我们先打开一张图片);

用Adb 工具获取当前手机截图,并用adb将截图pull上来

adb shell screencap -p /sdcard/1.png    adb pull /sdcard/1.png .

用tessOCR进行图像识别,提取文字;

将文字中的问题和答案提取出来;

使用百度搜索并统计搜索得到结果数量

问题+各个答案count(q&a);

问题 count(q);

答案 count(a);

计算匹配值pmi: pmi[i]=count(q&a[i])/(count(q)*count(a[i]))

选择pmi值最高的为答案。

步骤

安卓手机打开USB调试,设置》开发者选项》USB调试

电脑与手机USB线连接,确保执行adb devices可以找到设备id

打开百万直播

运行我们的java程序,当弹出题目时,输入回车

注意程序中的adb驱动目录要更换成自己的目录

我的屏幕是1920*1080,如果是别的分辨率,暂时需要修改一下代码中的图片参数等。

实验结果

5dfdb3b1586c

PS:

无奈本人在出差,笔记本速度和网速都比较慢,比较好的电脑和网速肯定能很大的提升。

TODO

1、可以增加一个图形化界面,分别对题目和答案进行搜索并进行展示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值