首页/文章/ 详情

一串JS代码Hack简单考眼力小游戏

2年前浏览2079

最近在群里闲聊的时候发现大家在玩一款考眼力的网页小游戏,这个游戏简单来说就是从方块中找出不同的。在规定的时间通过的关卡越多越好。最后游戏会根据你通过的关卡数量来给你评分。但是人类的眼力是有极限的,而装逼的欲望没有。So, 我就开始研究如何愉快的用JS作弊了。

图片图片图片

图片

网页分析

Hack这种事情是讲究化劲的,知己知彼才能成功。第一步当然是先分析一下网页了。打开Chrome自带的开发者工具可以看到,这些方块不过就是span标签搭配RGB颜色。而我们知道游戏规则是所有的方块里面只有一个是不同的,所以我们只需要找到那个不同的,然后模拟点击那个元素就可以了。

图片

代码实现

说干就干。由于游戏限制实现是60秒,所以我们为了调试方便,可以用一段JS先把网页内所有的计时器停掉。

借着根据我们之前发现的原理,构造原型代码验证思路。

A few moments later……

图片

这段代码的意图很明显,为每一种颜色建立一个字典,记录出现了多少次,然后我们遍历字典,只出现了一次的颜色自然就是我们要找的方块了。接着我们拿着得到的颜色代码,再去文档中对着所有的方块比对,最后找到元素并点击。为这个函数设置一个计时器定时启动,便大功告成了,把代码输入开发者工具,试试效果。

图片

Impressive! 效果非常不错,我当时看到的最厉害的人,也不过只能打到lv40而已。但是我们的代码还是有一些冗余,还有优化提高的空间。

在交流中,其他人在我的代码的基础上,给出了性能更强更精简的改进版。

图片

这段代码妙就妙在用了requestAnimationFrame代替了计时器,真正达到了机器能跑多快跑多快,完全释放了机器的全部性能,能限制速度的也只有浏览器渲染的速度了。

图片

效果可以说是相当的不错了,只不过到了这个阶段,人类早已经退出较量了。

总结

总体来说,这个游戏挺好玩的,各种意义上。


人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-12-20
最近编辑:2年前
320科技工作室
硕士 | 结构工程师 lammps/ms/vasp/
获赞 221粉丝 340文章 300课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈