开发工具

Python版本:3.6.4

相关模块:

opencv-python模块;

numpy模块;

selenium模块;

pillow模块;

以及一些Python自带的模块。

环境搭建

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

原理简介

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

https://chromedino.com/

大概长这个样子:

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

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

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

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

'''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)。

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

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

  1. chrome恐龙游戏java_自动玩Chrome浏览器的小恐龙游戏

    开发工具 Python版本:3.6.4 相关模块: opencv-python模块: numpy模块: selenium模块: pillow模块: 以及一些Python自带的模块. 环境搭建 安装Py ...

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

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

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

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

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

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

  5. Python自动检测Chrome浏览器版本号并下载对应驱动文件[chromedriver.exe]

    说明 实现原理是当使用的chromedriver.exe与当前Chrome浏览器版本不一致时会抛出异常,在异常信息中会包含当前Chrome版本信息和Chrome浏览器安装地址信息,通过捕获异常信息,正 ...

  6. selenium 自动打开Chrome浏览器且重复使用已打开的Chrome实例

    好处还能有啥?就是偷懒呗,打开脚本就跑,还管浏览器干啥. 如何使用已打开Chrome,其他文章讲很多了,也不多说,这里主要参考的这片文章 selenium 使用已打开的chrome浏览器_YeLang ...

  7. Chrome浏览器设置小窗口视频

    快捷工具先安装1.28版本后用1.31版本替换,以实现视频弹窗和双击关闭标签页功能. 首先下载Chrome扩展快捷工具1.28版的CRX安装包:http://pan.baidu.com/s/1pJ4T ...

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

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

  9. 恐龙跳一跳游戏python_【Python】Python代码制作”恐龙跳一跳”小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...

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

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

最新文章

  1. Confluence 6 重构 ancestor 表
  2. node mysql 多个_使用Node.js处理多个MySQL查询
  3. @CachePut(与@Cacheable的差异)@CacheEvict
  4. 菜鸟教程-css学习笔记
  5. asp.net core 集成JWT
  6. linux 驱动编写(sd卡驱动)
  7. theano 编程技巧
  8. nginx的编译安装以及启动脚本编写
  9. TF卡里删掉文件后内存没变大_电视装好kodi后打不开?播放原盘4K很卡?教你怎么解决...
  10. MacOS技巧|Mac如何自定义触控栏Touch Bar?显示Touch Bar教程
  11. 人脸脸部识别技术_面部识别技术基础
  12. foreign key() references 字段名(字段名)详细用法
  13. 中国第三代半导体行业运行现状及十四五规划研究分析报告2022-2028年版
  14. python sqlachemy模糊查询报错
  15. ssim算法计算图片_图像质量评估算法 SSIM(结构相似性)
  16. 《微信公众平台开发最佳实践》——导读
  17. CentOS(/dev/mapper/centos-root)进行磁盘扩容
  18. 《Python爬虫100例》复盘⑦,解决手机APP爬虫环境问题
  19. Open Policy Agent
  20. html 箭头下拉,jQuery下拉箭头样式 简单实用(原创)

热门文章

  1. wps页眉怎么设置不同页码_Word:单双页页眉页码不同怎么设置?不同章节重新编码怎么设置?...
  2. vss服务器状态失败_vss问题解决办法
  3. android串口驱动服务怎么开启,Android usb转串口驱动开发
  4. 微信小程序选择开始时间和结束时间控件
  5. 如何使用PDF编辑软件给PDF删除页码
  6. 详细通用phpstudy本地搭建网站以及cms搭建教程
  7. word另存为html行距,word文档如何设置行间距
  8. 台积电多人离职:老婆受不了
  9. 美国大学计算机理论专业phd,盘点美国那些计算机专业PHD超级难申请的大学
  10. 笔记本电脑插入耳机仍然外放(亲测有效)