专栏首页奇点大数据你的“跳一跳”榜上有名了吗?聊聊“跳一跳”开挂方法

你的“跳一跳”榜上有名了吗?聊聊“跳一跳”开挂方法

最近“跳一跳”在朋友圈风靡一时,吃饭的时候,人家跟你聊跳了多少步,你要没上200都不好意思跟人家打招呼。作为AI研发的机构,我们更关心怎么样才能自动让AI走的更远的问题。网上也有不少解决问题的版本,我们也做了一下归纳,大概有这样的一些套路:

Auto-Jump算法“跳一跳”

1、手机环境搭建:adb手机连接输出控制、手机调试模式

2、开发环境搭建:Python、opencv

3、使用算法

a、opencv 基于图像处理识别棋子的定位、跳台之间的距离,测量距离跟时间的线性关系。

b、在上一步的基础上将opencv的改进加入神经网络、卷积神经网络。

C、将opencv算法收集的3000个样本数据进行训练收集。

小结:典型的opencv目标识别和监督学习的办法

AI“跳一跳”

模仿学习中最简单的行为克隆方法:收集很多好的游戏输入输出数据,然后使用监督学习训练。

1、构造游戏数据库

用其他外挂方法收集大量的游戏输入输出数据,加入AI代码,通过线性回归训练了一个简单的线性模型来估计跳跃距离和按压时间的关系。

2、构造端到端神经网络模型及训练

构造了一个5层的卷积神经网络,用一个简单的回归模型使用构建的数据库进行训练。

3、安装PyTorch深度学习框架:pytorch.org、运行代码。

小结:基于卷积神经网络的图片回归的监督学习办法

Python“跳一跳”

通过ADB 工具获取当前手机截图,并用 ADB 将截图 pull 上来,Python脚本计算图形的距离和按压的时间,最后使用ADB控制它跳动。

实现原理

1、手机连接PC,PC通过adb命令对手机游戏界面截图,并保存在PC上。

2、PC端根据保存的图片进行处理(读取RGB值),获取棋子的位置,获取下一步棋盘的位置,然后利用"两点之间距离公式"来计算出两点之间的距离,然后根据经验值计算出按压时间。

3、通过adb命令模拟按压时间来实现棋子的跳跃。

小结:计算机图形算法中的目标识别的回归方法

JavaScript版本"AI"脚本

实现的原理

1、使用opencv实现的快速找色函数找出并计算棋子位置。具体为先根据棋子颜色找出棋子顶部位置,再遍历顶部这一行的像素找出顶部的中点位置,偏移得到棋子底部中点位置。

2、使用项目wangshub/wechat_jump_game的算法缓慢找出并计算跳跃目标的位置。

3、根据跳跃距离乘以系数计算按压时间并按压。

小结:仍然是一个基于opencv的位置识别方法

最后一个:

手工制图“跳一跳

想出这个方法的玩家可以说的是跳一跳的真爱粉了,玩家在手机屏幕上画函数坐标,根据两平台的距离计算出按压的时间。不过,经过我们专家团一致认为,这个有51%以上的概率属于搞笑用的,纯属博大家开心一笑。


本文分享自微信公众号 - 奇点(qddata)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度学习已经触到天花板了吗

    经过了多波浪潮的人工智能这次能够有新的突破吗?还是,历史依然会重演呢?岁末年初,本文作者Thomas Nield从历史上的英国讲起,进而探讨了人工智能到底是什么...

    刀刀老高
  • AI虽好,转行仍需谨慎

    最近不少同学在问我现在AI工程师工资这么高,想转行来学AI,让我给点意见或者建议。我在这里就集中说一下自己的看法。

    刀刀老高
  • 深度学习入门

    机器学习技术正越来越多的出现在消费级产品上,比如照相机和智能手机。 机器学习系统可用于识别图像中的对象,将语音转换成文本,选择搜索结果的相关项,以及匹配新闻、帖...

    刀刀老高
  • 一步一步学习Vue(十)

    Jerremy
  • 用c语言手搓一个500+行的类c语言解释器: 给编程初学者的解释器教程(4)- 语法分析1

    我们来看看两个概念,EBNF和递归下降文法,以及如何用这两个方法来计算tryC中的表达式。

    用户7424068
  • SourceTree 从下载、安装到免登录的方法(Windows 版 )

    2.找到 C:Usersxx电脑名AppDataLocalAtlassianSourceTree文件下 增加名为accounts.json的文件

    yuezhongbao
  • 进一步学习 nox 教程,轻松掌握命令行用法

    Github地址:https://github.com/chinesehuazhou/nox_doc_cn

    Python猫
  • NVIDIA NGC 容器现在开放更多使用者、更多应用程序、更多平台使用

    NVIDIA在 SC18 发表的全新多节点容器、与 Singularity 容器的兼容性及 NGC-Ready 计划,让更多人能接触到资料科学、人工智能和 HP...

    GPUS Lady
  • 面试驱动技术 - Block看我就够了【干货】

    Block 在 iOS 算比较常见常用且常考的了,现在面试中,要么没面试题,有面试题的,基本都会考到 block 的点。本文特别干!(但是初中级iOSer应该能...

    小蠢驴打代码
  • 概率校准

    使用sklearn自动生成二分类数据集,划分训练集、验证集和测试集对不同的分类器,画出可靠性曲线在训练集上:在验证集上如何进行概率校准(probability ...

    用户3577892

扫码关注云+社区

领取腾讯云代金券