师雪坤和刘阳

风靡一时的虐心小游戏《Flappy Bird》,以玩法简单、难度超高著称,不过,最近这款让全世界玩家几欲怒摔手机的游戏,被两位中国技术宅设计的“玩鸟机器人”搞定,疯狂突破百分。记者 联系上两位80后小伙伴师雪坤和刘阳了解到,就是因为游戏玩不下去才“小试牛刀”玩破解,而研发机器人是两人的兴趣点和事业未来。

机器人让游戏高手望尘莫及

flappy bird是不少玩家热衷的休闲游戏,超级玛丽游戏中的绿色通道、眼神有点呆滞的小鸟和几朵白云便构成了游戏的一切。你需要不断控制点击屏幕的频率来调节小 鸟的飞行高度和降落速度,让小鸟顺利地通过画面右端的通道,如果你不小心擦碰到了通道的话,游戏便宣告结束。所以,玩到手抽筋甚至想砸手机,只能过个位数 管道的玩家大有人在。最近,来自西安的技术宅小伙伴们给大家送上福利,他们发明的“玩鸟机器人”,轻轻松松搞定一百多关突破百分,让高手也望尘莫及。

有图有真相,从网上流传的视频来看,当熟悉的音乐响起,由识别系统+摄像头确定水管位置,控制系统+机械臂构成的机器人,能够准确点击小鸟起 跳,逐步加速也游刃有余,越玩越high,实在是技术宅拯救世界。该款机器人面世令网友兴奋不已,“知识改变命运,小鸟再也不用吃土了!”所以大家可以删 游戏了!“我到现在也只能过15根管子”,“人类已经无法阻挡技术宅了!”“太凶残了,机器人不会手抖”,“这让我们这种停留在60的玩家情何以堪?”还 有各种感觉不明觉厉,求“做朋友”的,“这是来自星星的吗?我也想要个来自星星的男友!”

“操盘手”是西安两位技术宅

到底“玩鸟机器人”是怎么工作的,两位牛人也引发揭秘风潮。其实“愤怒的玩家”出人才,“我同事说,这种做法跟他当年玩魔兽,让两个疯狂的电脑 互相PK,他当裁判的动机差不多。”所以,也有网友担心,这明明是一个闲得慌的游戏衍生出一个闲得慌的破解法,这明明是一种丧心病狂的作弊行为!“让机器 去搞定机器,这两人是不是太无聊?”也可以干一些更有实际价值的工作,比如“能不能设计一个代打排位的?”也有好多网友一眼看出,“玩鸟机器人”类似各企 业流水线上的分拣机器臂,机器臂貌似是从硬盘上拆下来的,“技术含量并不高,我家那位动手也可以破吧”。

相当欢乐的是,两位小伙伴现身视频秀英文也引发了网友研究的兴趣,“他们都有女朋友了么?”“英文发音相当接地气啊!”

扬子晚报记者联系上两位西安技术宅中的师雪坤,他告诉记者,自己和另一位“操盘手”刘阳是中学同学,一个来自北航计算机专业,一个在浙大学数 学,毕业后踏入互联网行列,成了一对很好的拍档,默契度很高。用一周的时间破解Flappy Bird,只是一次“小试牛刀”。“最早我就只能玩两下,就是因为玩不下去,才萌生了破解的想法,主要也想了解一下通关以后是不是像传说中的那样,哈哈, 但对我们来说也是一个学习和尝试的过程。”师雪坤说,其实原理并不复杂,破解工具也颇为山寨,对普通网友来说,复制也并不难。有意思的是,跟硬盘拆下来的 机器臂相连的“手”则是自制电容笔。“‘手’不能太粗大,不然点不准,于是我们就自己用棉签做了一个。”

机器人还不能所向披靡

这款玩鸟机器人分为识别系统、控制系统和机械三个部分,用摄像头捕捉位置,控制系统发出指令再使用机械臂点击屏幕,最终利用机械打败游戏。识别系统有一 个摄像头,主要用来识别游戏中水管的位置用来采集数据。本来他们想通过摄像头采集小鸟的位置,不过由于摄像头有些延时,对游戏来说就没了意义,于是方案改 为识别水管。控制系统则由电脑外加Arduino构成,利用Python编写的分析程序计算出小鸟的位置,进而发出“点击”的指令,操控那个从硬盘上拆下 来的摇臂作为机械臂触发屏幕,最终完成玩游戏的整个过程。

简单来讲,“关键就是要把小鸟起跳的时间与通过管道的时间算好匹配上,才能确保小鸟一直能畅通无阻。”但由于系统的响应速度不够理想,不断积累 的误差会逐步影响敲击的精确性,这款机器人也并不能做到所向披靡,最近他们试过玩到几百分就挂了。所以,师雪坤强调,不断计算和调试的过程会相对繁琐一 些。

视频发到网上后,引起了系列连锁反应,“有好多朋友给我们打电话,除了玩家,其中也不乏闻风而动前来谈合作的业内人士。”师雪坤表示,未来两人想在深圳往智能机器人方向发展。

技术宅之flappy bird 二逼鸟的更多相关文章

  1. 飞翔的圆(Flappy Bird)游戏源码

    这个源码是一个不错的休闲类的游戏源码,飞翔的圆(Flappy Bird)游戏源码V1.0,本项目是一个仿Flappy Bird的小游戏,只不过是把Flappy Bird里面的鸟替换成了简单的圆.感兴趣 ...

  2. 用Phaser来制作一个html5游戏——flappy bird (二)

    在上一篇教程中我们完成了boot.preload.menu这三个state的制作,下面我们就要进入本游戏最核心的一个state的制作了.play这个state的代码比较多,我不会一一进行说明,只会把一 ...

  3. 通通制作Html5小游戏——第二弹(仿flappy bird像素鸟)

    亲爱的博友们,我又回来啦~因为我们技术宅的思想只有技术宅懂得,好不容易写了点好玩的东西发QQ空间,结果只有11的UV,0回复....10分钟ps一个女神的素描效果发QQ空间朋友圈,一大堆回复加赞,作为 ...

  4. canvas 制作flappy bird(像素小鸟)全流程

    flappy bird制作全流程: 一.前言 像素小鸟这个简单的游戏于2014年在网络上爆红,游戏上线一段时间内appleStore上的下载量一度达到5000万次,风靡一时, 近年来移动web的普及为 ...

  5. 自己动手写游戏:Flappy Bird

    START:最近闲来无事,看了看一下<C#开发Flappy Bird游戏>的教程,自己也试着做了一下,实现了一个超级简单版(十分简陋)的Flappy Bird,使用的语言是C#,技术采用了 ...

  6. 用Phaser来制作一个html5游戏——flappy bird (一)

    Phaser是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏.在这篇文章中我就教大家如何用Phaser来制作一个前段时间很火爆的游戏:Flappy Bird,希 ...

  7. 也来山寨一版Flappy Bird (js版)

    随着Flappy Bird的火爆,各种实现的版也不断出现,于是也手痒简单实现了一版. 其实本来只是想实现一下这只笨鸟的飞翔运动的,后来没忍住,就直接实现一个完整游戏了…… 因为这个游戏本身实现起来就没 ...

  8. [MFC] 高仿Flappy bird 桌面版

    这是今年年初做的东西,一直没有时间整理,现在拿出来分享下~ 目录 开发背景 开发语言及运行环境 效果展示 游戏框架说明 游戏状态及逻辑说明 经典算法说明 重量级问题解决 开发感想 一.开发背景: fl ...

  9. 程序员带你一步步分析AI如何玩Flappy Bird

    以下内容来源于一次部门内部的分享,主要针对AI初学者,介绍包括CNN.Deep Q Network以及TensorFlow平台等内容.由于笔者并非深度学习算法研究者,因此以下更多从应用的角度对整个系统 ...

随机推荐

  1. Jquery.Treeview+Jquery UI制作Web文件预览

    效果图: 前台Html: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="D ...

  2. AngularJS中的$apply

    $apply()方法可以在angular框架之外执行angular JS的表达式,例如:DOM事件.setTimeout.XHR或其他第三方的库. 当仅仅使用Angular所提供的对象时,你不该过多的 ...

  3. Python目录常用操作

    os.path.basename(path) #取文件名 os.path.getsize(path) #取文件大小 os.path.exists(path) #文件是否存在 os.path.dirna ...

  4. css语法和JS语法的对比

      CSS语法(不区分大小写) JavaScript语法(区分大小写) border border border-bottom borderBottom border-bottom-color bor ...

  5. 632. Binary Tree Maximum Node【Naive】

    Find the maximum node in a binary tree, return the node. Example Given a binary tree: 1 / \ -5 2 / \ ...

  6. mysql 创建连接是 Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4')

    Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4') maven 依赖换版本 <dependenc ...

  7. floyd算法&迪杰斯特拉算法

    ; k<=n; k++) ; i<=n; i++) ; j<=n; j++) { gra[i][j]=min(gra[i][j],gra[i][k]+gra[k][j]); } vo ...

  8. ibatis中integer类型

    假如java代码中设置的返回类型是integer类型,ibatis实际上返回的是BigDecimal,也就是说  ibatis转换成integer默认是bigdecimal类型的

  9. 跟着百度学PHP[11]-PHP当中的异常处理

    首先要说一下常见的三种错误: 1.语法错误 2.运行错误 3.逻辑错误 00x1 错误报告及错误级别 PHP的错误分为三个等级 1.注意(notice)   没有变量a 2.警告(warning) 没 ...

  10. eclipse中tomcat配置JNDI链接Oracle数据源例子

    最近换到新公司,第一次接触JNDI方式连接数据库. 一开始怎么找也没找到数据库地址在哪里配置的,后面跟代码发现spring中初始化dataSource是通过这个类JndiObjectFactoryBe ...