2018年一开年,最火cheerio的莫过于就是答题和区块链了。
而今天,cheerio我想和大家来一起说说前者。
伴随着各种答题的火热,随之各种【外挂】答题也出来了,开源外挂越发猖獗,很多人也说这使得游戏变得毫无意义cheerio?
写着文字之前,我也是最早一批开发所谓答题【外挂】的人,但......
我常在微博喊反对外挂,其实我反对的仅仅是狭义的外挂,也就是电子游戏中的外挂。
有些人可能看见我反对外挂,习惯性地要夸一下我三观很正,然而我想说:用不用外挂其实和一个人的三观关系不大。
我反对电子游戏中的外挂,他不反对,我们不需要吵架。
因为我们的分歧并不是“使用外挂对不对”,而是“外挂是什么”——说得更深一点,我们的分歧在于“电子游戏是什么”。
我认为电子游戏是体育竞技的一种,体育竞技应当满足奥林匹克精神:相互理解、友谊、团结和公平竞争。使用外挂是违反公平竞争精神的,外挂可耻。
他认为电子游戏是文化商品的一种,游戏和电影音乐没有本质区别。休闲娱乐以开心为第一要务,开挂是为了玩儿的开心。他花钱买了游戏,他就是这个游戏的主人。
我和他谁对谁错?你的心里已有答案,但是我们其实不在乎。
强调一点,我和他都是普通人,没有几十万粉丝看我们直播打游戏,开挂不开挂纯属个人行为,对于青少年的心理健康不会产生良好的或不良的影响。
公众人物是不可以开挂的,因为公众人物身上肩负着社会责任。这里我不冗述。
为什么我只反对电子游戏中的外挂?
答题辅助、抢票软件,同样也是外挂。但它们是现实生活中的外挂,它们是西朝鲜这个丛林社会弱肉强食的一部分。丛林社会生而不公平,有钱人可以用钱解决一切问题,而没钱的人只能去和别人撕破脸皮。
穷却狡猾的人,就会用工具帮自己撕破别人的脸皮。
这里的狡猾不是贬义词——事实上一个丛林社会里面最容易生存的就是这种人。有些人头破血流了,破口大骂西朝鲜人生性卑劣,其实他是把社会风气的错归结到了民族性上,偏颇千里。
人的塑造,三分靠天性,七分靠教育。出淤泥而不染的人不是不存在,只不过大部分人都不是。所以普通人当然不需要自怨自艾,错的不是你,是这个世界。
说了这么多,我来转转笔锋....
看了很多答题解决方案,整理分析了一下几点,当然如果你没什么技术开发能力,可以直接保存下面二维码微信打开扫一扫即可进入。
了解技术的下面我就和你们一一说下实现方法。
一:AnswerHelper
各种答题有奖节目(百万英雄,百万赢家,冲顶大会)的辅助工具
会自动识别出题目和答案内容
自动调用浏览器在百度中搜索问题和答案
展示搜索结果并从搜索结果中智能推荐正确选项
可有效避免“个性化题目”造成的各类云答题失效
使用步骤
1,构建节点组件
安装的NodeJS最新版本
命令行进入的NodeJS \ AnswerHelperServer \ node_modules \百度-AIP-SDK目录,执行命令:
npm install
命令行进入的NodeJS \ AnswerHelperServer目录,执行依次执行命令:
npm install mime
npm install cheerio
npm install segment
申请_百度文字识别服务测试账号,在文字识别服务中选择创建服务,获取到AppID,API Key,Secret Key后写入 AnswerHelperServer.js文件中的相应位置即可
//设置APPID / AK / SK
var APP_ID = “申请到的AppID ” ;
var API_KEY = “申请到的API密钥” ;
var SECRET_KEY = “申请到的秘密密钥” ;
2,构建VC ++组件
使用VS2008或更高版本打开AnswerHelper_vc2008.sln
编译的Win32平台的发布版本的可执行文件AnswerHelper.exe
3,投入使用
放置AnswerHelper.exe文件与AnswerHelperServer目录在同一目录下
在夜神模拟器安装答题软件
启动AnswerHelper.exe程序并将程序区域出状语从句:题区域重合
出现题目点击后Do按钮,程序将自动推荐答案
点击Quit按钮退出程序
中键点击程序界面可以隐藏的NodeJS的命令行窗口
4,其他
可以也。使用adb.exe工具来连接物理手机应用说明教学,但是那样比较慢,截图命令:
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png
还可以将手机屏幕投影到电脑屏幕来提供答题图像。
代码见:https://github.com/Shilyx/AnswerHelper
二:问答辅助建立题库的方式
现在大多数答题辅助对于图像的识别都没啥问题,主要就是最后问题的搜索,在这主要是讨论一种建立题库的方式,仅供大家参考。https://github.com/neal1991/answers
构建题库
目前答题应用最关键的就是搜索算法了,现在利用 ocr 去识别图片已经不是关键问题,最关键的是如何搜索到正确的答案。现在出题的方式也越来越诡异,所以建立题库就很有必要了。
目前来说各种答题辅助对于答题 APP 题目的文字的识别基本都没有太大的问题,主要的问题就是现在答案的搜索上。因为现在的题目出题方式越来越妖,直接去百度搜索或者百度搜索,或者统计搜索的结果数都是不太准确的。所以我希望能通过 elasticsearch 来建立一个问题题库,当然题库的建设需要其他人的建设和参与。
部分代码主要是来自于 TopSup,主要增加的是题库的建立方法以及在题库中搜索的方法。
ElasticSearch
使用起来比较简单,直接运行 bin/elasticsearch 或者 bin/elasticsearch.bat( windows 平台)即可。
验证 elasticsearch 是否正确运行, 打开浏览器访问 http://localhost:9200
主要包括百度 ocr API 的相关配置以及截图区域的配置,按照 config/config.template.yaml来进行配置。
贡献题库方式
有两种方式你可以贡献题库,一种是通过文本方式,另外一种是上传图片的方式。
文本方式
你只要在 questions.txt 最后一行添加文字就可以了,问题和答案之间应该有一个空格。
利用图片创建题库的方式一开始存在一个问题,如何从选项中找到正确的选项呢。一开始想通过选项的数字来判断,但是正确的选项并不一定是选择人数最多的。感谢图像处理这门课程,我想起来彩色的图片转换成灰度图的时候,灰度值应该比灰色图像的高。正确选项的背景颜色是彩色的,所以我们只要截图选项区域,然后通过两个阈值来过滤,设置阈值为 120 可以获得所有选项,设置阈值为 190 则不包含正确的选项,通过这个差别就可以找到正确的选项了。
更多方式欢迎补充....