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

网页分析

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

代码实现

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

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

A few moments later……

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

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

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

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

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

总结

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

一串JS代码Hack简单考眼力小游戏相关推荐

  1. 原生JS实现一个简单的打字小游戏

    原生JS实现一个简单的打字小游戏 利用javascript制作一个简单的打字小游戏 之前写了一个贪吃蛇小游戏好像反响不错 今天我来写一个比贪吃蛇更low更简单的打字小游戏 打字小游戏原理 接下来咋们直 ...

  2. js实现简单的俄罗斯方块小游戏

    js实现简单的俄罗斯方块小游戏 开始 1. 创建一个宽为 `200px`,高为 `360px` 的背景容器 2. 在该容器上创建一个 `20 * 20` 的块元素 3. 控制该元素的移动,每次移动 ` ...

  3. python简单小游戏代码_一个简单的python小游戏---七彩同心圆

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 用pygame做一个简单的python小游戏-七彩同心圆 玩法:每次点击鼠标时,会以鼠标为圆心,不断 ...

  4. 考眼力的游戏你们玩过什么?

    考眼力的游戏有很多 比如找你妹,眼力比拼,找大叔等 但是玩法经典,趣味性强的莫过于找不同了 通过两张看似一样的图片 实际有细节不一样的图片 快速找出不一样的 从中获得积分,最后成为冠军 你可以找到多少 ...

  5. 做一个简单的java小游戏--单机版五子棋

    做一个简单的java小游戏–单机版五子棋 学了java有一段时间了,今天就来搞一个简单的单机版五子棋游戏. 实现功能:那必须能进行基础的输赢判断.还有重新开始的功能,悔棋的功能,先手设置的功能和退出的 ...

  6. 使用javascript实现简单的龟兔赛跑小游戏

    使用javascript实现简单的龟兔赛跑小游戏 以下是实现代码 //javascript实现代码 function start(){t=document.getElementById('t')r=d ...

  7. 原生html小游戏,原生JS实现别踩白块小游戏(一)

    对于前端开发人员来说,闲暇之余自己开发个小游戏打发时间,也是对自己基础技术的一种应用考验.那么别踩白块小游戏,相信大家并不陌生,这个小游戏我们可以通过原生js来实现,即便是前端初学者也可以轻松完成. ...

  8. 基于C语言Ncurse库和链表的简单贪吃蛇小游戏

    参考:基于C语言Ncurse库和链表的简单贪吃蛇小游戏 作者:三速何时sub20 发布时间:2020-09-29 10:23:51 网址:https://blog.csdn.net/weixin_44 ...

  9. 用pygame做一个简单的python小游戏---贪吃蛇

    用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...

最新文章

  1. Java程序员修炼之路(一)我们为什么选择Java
  2. 比特币的价格今年会达到10万美元吗?有人用蒙特卡罗方法预测了一下
  3. RocketMQ 介绍 msgId生成算法
  4. page fault in nonpaged area 蓝屏_记一次蓝屏0x00000050
  5. BZOJ3709: [PA2014]Bohater
  6. Python字符串、时间戳、datetime时间相关转换
  7. [C++调试笔记]求电势posi.cpp
  8. boost::hana::mod用法的测试程序
  9. java 递归从子节点删除父节点_LeetCode450. 删除二叉搜索树中的节点
  10. react接收后端文件_React获取Java后台文件流并下载Excel文件流程解析
  11. java中 若干,Java中的随机数发生器。产生若干的复杂性
  12. RedHat5 升级OpenSSH服务
  13. matlab里有java数据库吗_Matlab通过JDBC建立到Oracle数据库的连接
  14. 全球最大地标识别数据集问世:包含200万张图片和3万处地标
  15. spark原理和spark与mapreduce的最大区别
  16. jQuery als.js 跑马灯
  17. java实现将汉字转为拼音并包含音调
  18. vue注册组件template传id
  19. Springboot + vue 实现导出word
  20. SSD固态硬盘怎么选?选对接口是关键

热门文章

  1. HTML简单汇总(不全)
  2. (C++)GDAL学习笔记—— 5 全色影像与多光谱影像的融合
  3. js 获取当前是这个年份的第几周+获取这周的开始和结束日期
  4. java之字符串转换
  5. Unreal Engin_画廊制作笔记 _007Fog处理,雾的设置
  6. 怎样存钱力最大c语言,C语言问题 、//14.怎样存钱利最大 //假设银行整存整取存款不同期限的 月息利率 分别为: 0.63% 期限=1年 0....
  7. C# webkit 内核浏览器 访问https网站 显示空白或者提示 Problem with the SSL CA cert (path? access rights?)
  8. 计算机专业大学排名 来看你的学校排第几,华盛顿州大学计算机专业排名 你的学校排第几...
  9. YAML第一章 基本概念及语法
  10. jquery 无限循环滚动,文字图片皆可,IE6,7,8,FF8测试无误