开发工具

Python版本:3.6.4

相关模块:

opencv-python模块;

numpy模块;

selenium模块;

pillow模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

T-Rex Rush是谷歌浏览器里自带的一个彩蛋小游戏,电脑断网的时候按下空格键就可以触发。或者直接访问如下链接也可以:

大概长这个样子:

image.png

玩法很简单,玩家通过操纵空格键来控制小恐龙跳跃或者不跳跃,从而躲避路上的障碍物。当小恐龙不小心撞到障碍物时,游戏结束。

今天我们直接设计一个简单的策略,就可以轻松实现上万的跑分:

image.png

具体而言,你只需要每次截取小恐龙前面的图像区域,然后检测一下是否有障碍物出现就ok了:

image.png

具体而言,截取图像的函数实现如下:

'''screenshot'''

def screenshot(self, area):

image_b64 = self.driver.execute_script("canvasRunner = document.getElementById('runner-canvas'); return canvasRunner.toDataURL().substring(22)")

image = Image.open(BytesIO(base64.b64decode(image_b64))).convert('RGB')

image = image.crop(area)

return image

根据截图来生成小恐龙当前需要进行的动作的智能体实现如下:

'''agent'''

class Agent():

def __init__(self, bbox_area, **kwargs):

self.bbox_area = bbox_area

self.bg_color = 255

self.reference_frame = np.full((bbox_area[3]-bbox_area[1], bbox_area[2]-bbox_area[0], 3), self.bg_color)

'''return action according to the game frame'''

def act(self, frame):

action = [1, 0]

frame = np.array(frame)

if self.bg_color != frame[0][0][0]:

self.bg_color = frame[0][0][0]

self.reference_frame = np.full((self.bbox_area[3]-self.bbox_area[1], self.bbox_area[2]-self.bbox_area[0], 3), self.bg_color)

diff = np.subtract(self.reference_frame, frame).sum()

if diff != 0:

action = [0, 1]

return action

虽然听起来很简单,但是实际效果还是蛮不错的(除了有时候植物连在一起的话判断会出问题T_T)。

完整源代码详见相关文件呗~

chrome恐龙游戏java_自动玩Chrome浏览器的小恐龙游戏相关推荐

  1. 小恐龙游戏python_补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~

    原文链接补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~​mp.weixin.qq.com 效果展示 在cmd窗口运行如下命令即可: 模型训练: python TRexRush.py ...

  2. 自动玩一局4399钢琴小游戏

    自动玩一局4399钢琴小游戏 1.思路 a.准备一个自动操作的机器人 b.自动操纵鼠标点击游戏开始 ​ b1.鼠标定位到开始按钮那一行(截图软件截到对应坐标) ​ b2.循环点击该行,保证开始按钮被鼠 ...

  3. python实现图片找不同游戏_用Python实现谷歌的小恐龙游戏

    (给Python开发者加星标,提升Python技能) 来源: Charles的皮卡丘-白露未晞me理 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". ...

  4. java小恐龙游戏_用Python实现谷歌的小恐龙游戏

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏&quo ...

  5. 微信useragent java_微信内置浏览器和小程序的 User Agent 区别及判断方法

    通过UA来判断不同的设备或者浏览器是开发者最常用的方式方法,而对于微信开发和小程序也是同样的一个情况,我们可以通过微信内置浏览器 User Agent 信息来判断其具体类型或者设备. 所以子凡就通过徒 ...

  6. 小恐龙游戏python_用Python实现谷歌的小恐龙游戏:p

    Python版本:3.6.4 相关模块: pygame模块: 以及一些python自带的模块. 环 境 搭 建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先 睹 为 快 在终端 ...

  7. html5游戏刷分,google chrome浏览器离线小恐龙游戏刷分bug

    搜索热词 F12打开开发者工具->console->输入如下代码,分数要多少有多少 Runner.instance_.setSpeed(99999); 试试 瞬间 满分 window.te ...

  8. chrome打开本地html自动刷新,chrome自动刷新怎么设置_chrome浏览器如何自动刷新当前页面-win7之家...

    我们在使用电脑中的chrome浏览器浏览网页中内容的时候,为了能够查看到最新的发布的内容,许多用户都会对网页进行及时的刷新,然而这样的操作很是麻烦,因此有些用户就想要给网页设置成自动刷新,那么chro ...

  9. 计算机自带游戏纸牌怎么玩,电脑上自带的游戏是怎么玩的,【红心大战】,【空当接龙】,【纸牌】都是怎么玩的啊...

    满意答案 coffee55 2013.03.13 采纳率:43%    等级:12 已帮助:11074人 "红心大战"的玩法 选出三张牌传给其他对手(第四局不传牌).如要选牌,单击 ...

最新文章

  1. Retrofit 网络请求参数注解@Path @Field @Query 等使用
  2. 重大疫情给企业管理带来的挑战,企业的管理应如何应对?
  3. axios post body参数_Vue开发中的一些问题(axios封装)
  4. java和python哪个好就业2020-java和python哪个的前途更好?
  5. 疯了,家里的网速慢的不是一星半点
  6. VTK:图表之EdgeListIterator
  7. 洛谷 - P1714 切蛋糕(单调队列+前缀和+思维)
  8. 笔记18 客户端跳转
  9. javascript冷门吗_分享几个html5冷门小知识
  10. IOS 定时器 NSTimer
  11. python连连看小游戏_python递归法实现简易连连看小游戏
  12. vue 声明周期函数_vue-router路由守卫-上
  13. Open vSwitch流表应用实战
  14. jmeter-01 JMeter HTTP测试的各元件功能演示示例
  15. mysql的粗略学习
  16. DeepFace--Facebook的人脸识别
  17. 【论文阅读】显著性检测 EGNet
  18. geogebra几何画图工具用法
  19. pdf合并在线,大家都在用的工具
  20. 4路 HX5+Emulex 8Gb 实现 BOFM 实施 -chenjhh@dc

热门文章

  1. python label 边框_Python Tkinter LabelFrame标签框架
  2. Python绘制多条曲线
  3. 数据架构学习之路(建议收藏)
  4. MySQL常见的面试经典108题
  5. Redis Cluster与Codis的选择
  6. 【图像去噪】基于小波阈值实现图像去噪matlab代码
  7. 洛谷P4312 [COI2009] OTOCI
  8. P1823 [COI2007] Patrik 音乐会的等待(单调栈)
  9. mysql 查询最接近某时间的数据
  10. 微信公众号h5分享到朋友圈,超详细的讲解