前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你的“跳一跳”榜上有名了吗?聊聊“跳一跳”开挂方法

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

作者头像
刀刀老高
发布2018-04-10 17:56:20
1K0
发布2018-04-10 17:56:20
举报
文章被收录于专栏:奇点大数据奇点大数据

最近“跳一跳”在朋友圈风靡一时,吃饭的时候,人家跟你聊跳了多少步,你要没上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%以上的概率属于搞笑用的,纯属博大家开心一笑。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档