chrome恐龙游戏java_自动玩Chrome浏览器的小恐龙游戏
开发工具
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浏览器的小恐龙游戏相关推荐
- 小恐龙游戏python_补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~
原文链接补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~mp.weixin.qq.com 效果展示 在cmd窗口运行如下命令即可: 模型训练: python TRexRush.py ...
- 自动玩一局4399钢琴小游戏
自动玩一局4399钢琴小游戏 1.思路 a.准备一个自动操作的机器人 b.自动操纵鼠标点击游戏开始 b1.鼠标定位到开始按钮那一行(截图软件截到对应坐标) b2.循环点击该行,保证开始按钮被鼠 ...
- python实现图片找不同游戏_用Python实现谷歌的小恐龙游戏
(给Python开发者加星标,提升Python技能) 来源: Charles的皮卡丘-白露未晞me理 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". ...
- java小恐龙游戏_用Python实现谷歌的小恐龙游戏
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏&quo ...
- 微信useragent java_微信内置浏览器和小程序的 User Agent 区别及判断方法
通过UA来判断不同的设备或者浏览器是开发者最常用的方式方法,而对于微信开发和小程序也是同样的一个情况,我们可以通过微信内置浏览器 User Agent 信息来判断其具体类型或者设备. 所以子凡就通过徒 ...
- 小恐龙游戏python_用Python实现谷歌的小恐龙游戏:p
Python版本:3.6.4 相关模块: pygame模块: 以及一些python自带的模块. 环 境 搭 建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先 睹 为 快 在终端 ...
- html5游戏刷分,google chrome浏览器离线小恐龙游戏刷分bug
搜索热词 F12打开开发者工具->console->输入如下代码,分数要多少有多少 Runner.instance_.setSpeed(99999); 试试 瞬间 满分 window.te ...
- chrome打开本地html自动刷新,chrome自动刷新怎么设置_chrome浏览器如何自动刷新当前页面-win7之家...
我们在使用电脑中的chrome浏览器浏览网页中内容的时候,为了能够查看到最新的发布的内容,许多用户都会对网页进行及时的刷新,然而这样的操作很是麻烦,因此有些用户就想要给网页设置成自动刷新,那么chro ...
- 计算机自带游戏纸牌怎么玩,电脑上自带的游戏是怎么玩的,【红心大战】,【空当接龙】,【纸牌】都是怎么玩的啊...
满意答案 coffee55 2013.03.13 采纳率:43% 等级:12 已帮助:11074人 "红心大战"的玩法 选出三张牌传给其他对手(第四局不传牌).如要选牌,单击 ...
最新文章
- Retrofit 网络请求参数注解@Path @Field @Query 等使用
- 重大疫情给企业管理带来的挑战,企业的管理应如何应对?
- axios post body参数_Vue开发中的一些问题(axios封装)
- java和python哪个好就业2020-java和python哪个的前途更好?
- 疯了,家里的网速慢的不是一星半点
- VTK:图表之EdgeListIterator
- 洛谷 - P1714 切蛋糕(单调队列+前缀和+思维)
- 笔记18 客户端跳转
- javascript冷门吗_分享几个html5冷门小知识
- IOS 定时器 NSTimer
- python连连看小游戏_python递归法实现简易连连看小游戏
- vue 声明周期函数_vue-router路由守卫-上
- Open vSwitch流表应用实战
- jmeter-01 JMeter HTTP测试的各元件功能演示示例
- mysql的粗略学习
- DeepFace--Facebook的人脸识别
- 【论文阅读】显著性检测 EGNet
- geogebra几何画图工具用法
- pdf合并在线,大家都在用的工具
- 4路 HX5+Emulex 8Gb 实现 BOFM 实施 -chenjhh@dc