小恐龙游戏python_自动玩Chrome浏览器的小恐龙游戏
开发工具
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浏览器的小恐龙游戏相关推荐
- chrome恐龙游戏java_自动玩Chrome浏览器的小恐龙游戏
开发工具 Python版本:3.6.4 相关模块: opencv-python模块: numpy模块: selenium模块: pillow模块: 以及一些Python自带的模块. 环境搭建 安装Py ...
- 小恐龙游戏python_补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~
原文链接补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~mp.weixin.qq.com 效果展示 在cmd窗口运行如下命令即可: 模型训练: python TRexRush.py ...
- 自动玩一局4399钢琴小游戏
自动玩一局4399钢琴小游戏 1.思路 a.准备一个自动操作的机器人 b.自动操纵鼠标点击游戏开始 b1.鼠标定位到开始按钮那一行(截图软件截到对应坐标) b2.循环点击该行,保证开始按钮被鼠 ...
- 小恐龙游戏python_用Python实现谷歌的小恐龙游戏:p
Python版本:3.6.4 相关模块: pygame模块: 以及一些python自带的模块. 环 境 搭 建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先 睹 为 快 在终端 ...
- Python自动检测Chrome浏览器版本号并下载对应驱动文件[chromedriver.exe]
说明 实现原理是当使用的chromedriver.exe与当前Chrome浏览器版本不一致时会抛出异常,在异常信息中会包含当前Chrome版本信息和Chrome浏览器安装地址信息,通过捕获异常信息,正 ...
- selenium 自动打开Chrome浏览器且重复使用已打开的Chrome实例
好处还能有啥?就是偷懒呗,打开脚本就跑,还管浏览器干啥. 如何使用已打开Chrome,其他文章讲很多了,也不多说,这里主要参考的这片文章 selenium 使用已打开的chrome浏览器_YeLang ...
- Chrome浏览器设置小窗口视频
快捷工具先安装1.28版本后用1.31版本替换,以实现视频弹窗和双击关闭标签页功能. 首先下载Chrome扩展快捷工具1.28版的CRX安装包:http://pan.baidu.com/s/1pJ4T ...
- html5游戏刷分,google chrome浏览器离线小恐龙游戏刷分bug
搜索热词 F12打开开发者工具->console->输入如下代码,分数要多少有多少 Runner.instance_.setSpeed(99999); 试试 瞬间 满分 window.te ...
- 恐龙跳一跳游戏python_【Python】Python代码制作”恐龙跳一跳”小游戏
开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...
- 计算机自带游戏纸牌怎么玩,电脑上自带的游戏是怎么玩的,【红心大战】,【空当接龙】,【纸牌】都是怎么玩的啊...
满意答案 coffee55 2013.03.13 采纳率:43% 等级:12 已帮助:11074人 "红心大战"的玩法 选出三张牌传给其他对手(第四局不传牌).如要选牌,单击 ...
最新文章
- 研究生的早期科研之路
- Sharepoint 2010 隐藏基本搜索中心搜索结果左侧的分类条件
- centos安装python3.5和pip
- 三星副会长李在镕启程赴美
- 【Java】关于Java编程软件idea快捷键的使用
- ashx实现ajax功能遇到的浏览器缓存问题
- 服务器系统小米随身wifi,Mac OS10.13正常使用的小米随身WIFI无线驱动 | 陳松's 博客...
- 淘宝运营 淘宝客的模式 、优点以及推广方案
- java课程设计 博客园_201521123098 JAVA课程设计
- 博途V15.1激活工具出错。
- android tv outofmem,java.lang.OutOfMemoryError:尝试抛出OutOfMemoryErr...
- IOS音视频(一)AVFoundation核心类
- 存储误删除所有lun的数据恢复方法
- 山东省有哪些计算机专业大学排名,山东人工智能专业大学排名
- css 弹出窗口之后的笼罩层
- java 中的空格符、换行符等怎么表示
- 综述 词向量与分布式表示
- 谷歌眼镜设计规范之UI设计原则
- 华维单片机编程-无线红外探测器01-产品简介和功能需求
- PL/pgSQL 表达式