首页 > 表白套路文章正文

如何优雅的玩“找茬”游戏

表白套路 2021-08-22 16:19:53 如何优雅的玩“找茬”

软件库去水印

我们今天的主角是这款:腾讯出的“大家来找茬”微信小程序。

1

如何“找茬”?

找茬游戏,说到底,玩的就是“眼疾手快”。根据万事皆正太(分布)理论(Everything is in accordance with the Normal Distribution Law),能靠先天优势,自带光环落到顶端者,我们称之为“天之骄子”,然,不幸的是,自测了一下IQ,发现自己是“天之弃子”;占不得先机,罢了,罢了,只好另寻他法。

“眼疾手快”,靠IQ,估计没个十年八载的苦练是走不上“找茬”巅峰的,既如此,那只好借鉴“分而治之”的伟大思想,一步一步来解决了。

根据永春行为法(YC's Law)第零条:

自己搞不定,请找Google!及第一条:

机器能干的活,绝不动手!好,那就祭出万能神器:Python大法!

2

<眼疾>

获得原图

相比于把大象装进冰箱需要三步,实现这个功能只需要两步:

一、把手机正确连接电脑获得手机屏幕截图;

二、运行程序处理图片找出图片差异并在原图上标注出来。

一个示意如右图

图片差异对比

图片差异对比这就很好理解了,把两张图片叠到一起,相减,剩下的就是不同的地方了,当然,这里有几个细节需要注意:原图的截取,上面从手机获取的截图有很多非目标区域,因而我们需要定义截图区域,这就是我们程序中需要给出的box参数:

box=(0.2,0.93,0.05,0.95)

这里,参数依次代表:

开始截取的列=0.2*图片宽,停止截取的列=0.93*图片宽

开始截取的行=0.05*图片高,开始截取的行=0.95*图片高

然后,仔细观察你会发现中间还有一块多余的区域,把上下两张图分开只需要给出中间区域要截除的像素值,这也就是我们程序运行的第二个参数:

gap=38

这里代表把第一次截图得到的图片二分后分别截去38像素的高度。

这时,还有一个问题要注意的是,我们截图参数是根据肉眼分辨设置的,你截图的结果可能并不是严格的目标图片的开始行列,这时,得到的两张图片会存在很小的错位,为了微调这个错位,我们给出程序的第三个参数:

dis=2

这代表两张图片在进行相减作差的时候会微调两行。

好了,得到差异图片后我们来看看效果

哈,五个不同的地方,终于“原形毕露”!

这时,你就可以看着这张差异图去“找茬”了。

当然,标题为《优雅的“找茬”》,上面这张丑陋的差异图肯定是不符合文章的气质的,没事,我们接着改进。

优雅的差异图

找到了差异,如何“优雅”的展示差异呢?我的第一反应就是:在原图上画个圈出来,这样既直观又不失“优雅”。好吧,说干就干!

第一步,使用Opencv库检索差异图的轮廓。这里,值得一提的是在图片的右上角有个小程序的返回图标,这会干扰我们提取轮廓,因而需要先把这个图标去除。查找到轮廓之前需要把图片转换为二值图,然后运用形态学开运算去除噪声,这里涉及程序的第四个参数:滤波核尺寸:

filter_sz=25

最后查找外轮廓并根据轮廓周长保存前n个轮廓,这就是程序里的第五个参数:

num=5

然后检测轮廓的最小外接圆,找到圆心和半径,绘制到原图上,效果如下:

这么样,效果是不是更“优雅”一些了呢!

2

手快

优雅的“快”

好了,经过上面的努力,我们已经让计算机替代眼睛找出了不同。但是,要是不仅观察速度比不过别人,要是手速也比不过别人呢?这可就让人纳闷了。另外,根据懒人生存法则第一则(Lazy man First Law):

能动口绝不动手让我们做个大概的估算:点击一次手机屏幕需要一根手指移动约2cm,运动中承载的手指平均质量记为10g,那么一次点击屏幕需要耗功0.00196焦耳,完成一张图片找茬你需要点击至少5次,一次游戏5张图那你需要点击25次,假设你的正确率为80%,那么加上两次进入游戏的点击,你完成一次游戏需要33.25次点击,需要耗能0.06517焦耳。假设你有一个小目标:成为朋友圈中的“找茬”霸主,就本人自己的情况看,需要等级至少30级以上。而每次游戏,根据前面对点击正确率的假设,可得到你每次游戏的积分平均为4分。再假设游戏的升级为积分递增制,设定等级积分差为累加数列,等差为10,也就是说从0级到一级需要积累0+1*10=10积分,而从一级到二级需要积分10+2*10=30,从二级到三级需要积分30+3*10=60,你会发现,该积分制符合数列S(n)=S(n-1)+n*10,好,以此类推,那么到达30级你需要积分4650,也就是需要完成1162.5局游戏,当然,严谨的我们肯定要想到,随着等级的上升,游戏的难度会增加,对手也会也来越强,假设游戏难度的增加使你的点击正确率呈现递减数列分布,而递减差为0.05,也就是,第一局游戏的正确率为100的情况下,第二局正确率为100-1*0.05=99.95,第1162.5局正确率为100-(1162.5-1)*0.05=41.925,那么你的点击次数将会呈递增数列增加,第一局你的点击次数为25,第二局则为25+1*0.05=25.05,第1162.5局点击次数为25+1161.5*0.05=83.075,那么完成4650个积分你需要的点击次数为62793.59次,需要耗能123焦耳。参考【1】,假设一碗米饭含热量116卡路里,也就是27712.4千焦耳,参考【2】,设米饭能量吸收比为98%,那么实际上为了实现这个“小目标”需要消耗0.0000045碗米饭,根据 【3】 ,设一碗米饭有4000粒,则实现这个“小目标”需要0.018粒米的能量。天呐!这可是0.018粒米啊,作为从小背着“谁知盘中餐,粒粒皆辛苦

好玩的找茬小游戏,还可以和朋友们一起来玩。微信搜索小程序:“一起来找茬找不同”就可以玩了。

扫描下方二维码立即玩游戏:


 

”长大的孩子,怎么能容忍这般浪费~~好了,那我们就来探索一种经济而又“优雅”的方法!

自动“找茬”版

前面已经获得了点击位置,那么如何自动来“找茬”呢?答案当然还是:Python大法好!为了实现这个功能,手机需要一点小小的设置:开始允许USB模拟点击,接着使用adb工具给手机发送模拟点击消息,而点击的位置就是前面计算出来的圆心。来,让我们感受下自动“找茬”版游戏的玩法:


线

说了那么多,你是不是也想来试试呢?

我不会Python,能不能玩?

当然!只要确保你手机正确连接电脑后,下载[4]里的所有内容,然后下载 [5]然后把所有文件放到一个目录下,双击auto_run_v2.bat 运行

我会Python,想试试代码,可不可以?

当然!下载这里的内容:[4]然后运行auto_run_v2_with_python.bat 即可!右键打开该文件可配置程序参数。

有什么需要注意的问题吗?

默认参数跟手机分辨率紧密相关,默认的参数适配1920*1080分辨率的手机,如果你的程序运行不正常,请检查你的手机分辨率然后自己右键打开auto_run_v2.bat修改参数 box,gap,dis等参数,另外,如果你不要程序自动点击的话把auto_clicked=False

[1]http://www.boohee.com/shiwu/56

[2]https://www.zhihu.com/question/38056875

[3]https://zhidao.baidu.com/question/461258675601332085.html

[4]https://github.com/yooongchun/auto_find_difference

[5]https://pan.baidu.com/s/1eI0awrShLlD7WcdvYdRDKA密码:jvz5

想要了解更多有趣玩法,就关注我吧~~

标签:如何优雅的

发表评论

评论列表

情话表白墙   百度一下   悬赏任务平台   vip微商网   网站地图   网站xml

©2019-2020 情话表白墙——人气领跑情话表白门户平台 版权所有.联系我们

本站的内容均来自网上整理,仅作为参考和学习使用,如有侵权请联系站长删除。谢谢您的支持!

副业网 |  情话表白墙 |  悬赏任务平台 |  视频去水印 |