针对Cent Browser断网谷歌小恐龙,屏幕1920*1080。 关闭慢速模式。

第一版

仅仅是简单的检测像素点,像素点不一样就会跳跃

大约能到700分左右,因为700分左右会变色,变色过程中由于色差问题,小恐龙可能会不停跳跃或者无视仙人掌。

你可以尝试更改andx()中的睡眠时间,set_out中的跳跃时间,或者x1,y1的初始值来优化。

from ctypes import *
import pyautogui as ui
from threading import Thread
import keyboard
import time# 当进程启动时如果两个点不同,就会按下空格
def set_out():global x1, x2, y1, y2, a gdi32 = windll.gdi32user32 = windll.user32# 获取句柄hdc = user32.GetDC(None)# 获取指定像素的颜色while a:c1 = gdi32.GetPixel(hdc, x1, y1)c2 = gdi32.GetPixel(hdc, x2, y2)if not c1 == c2:keyboard.press(' ')time.sleep(0.8)keyboard.release(' ')# 该进程每隔一段时间使得监测点右移,适应速度
def andx():global a, x2while (a):time.sleep(1.35)x2 = x2 + 1# 开始按下*号,获得两个检测点,
# 鼠标指向小恐龙眼睛按*号
global x1, x2, y1, y2, a
keyboard.wait('*')
x1, y1 = ui.position()
x2 = x1
y2 = y1 - 50
x1 = x1 + 85
y1 = y1 + 30
print(x1, y1, x2, y2)
t = Thread(target=set_out)  # 进程绑定
t1 = Thread(target=andx)  # 进程绑定
a = 1
keyboard.wait('+')
t.start()
t1.start()
keyboard.wait('-')
a = 0
t.join()
t1.join()

第二版

调整判定,使用两个检测区域,测定危险移动速度,再算出危险到小恐龙时间,提前跳跃

from PIL import ImageGrab  # 截屏用
import pyautogui as ui  # 获取鼠标位置
from threading import Thread  # 进程
import keyboard  # 键盘监听
import numpy as np
import timedef jump_(wait):# 执行线程,睡眠后按空格time.sleep(wait)keyboard.press(' ')time.sleep(0.2)keyboard.release(' ')def set_out():global x, y, end_l, end_r, atime_r = []  # 经过右端的时间队列while a:# 获得一排像素点,二值化,并且转数组img = ImageGrab.grab(bbox=(end_l, y - 1, end_r, y)).convert('1')img = list(np.array(img)[0])# 开始处理数组,使得危险‘连续’lenimg = len(img)setting = img[0]  # 背景颜色t = True  # 背景标记避免重复膨胀i = 200  # 循环变量# '膨胀'while i < lenimg:if not img[i] == setting:  # 若与背景不同色if t:  # 之前是背景j = 1t = False  # 遇到不是背景while j < 10:  # 将之前10个像素‘膨胀’if not img[i - j] == setting:  # 遇到不是背景的break  # 结束img[i - j] = img[i]j += 1else:  # 遇到背景t = Truei += 1t = True  # 背景标记i = 200  # 循环变量# '腐蚀'while i < lenimg:  # 针对后2/3像素点if not img[i] == setting:  # 若与背景不同色if t:  # 之前是背景j = 0t = Falsewhile j < 12 and i < lenimg:  # 将其与之后共12个像素‘腐蚀’img[i] = settingj += 1i += 1else:  # 遇到背景t = Truei += 1# 数组已经处理,对于中点和最右点区域检测# 让危险距离恐龙0.24s时起跳i = lenimg - 70  # 检测最末尾20个while i < lenimg - 50:if not img[i] == setting:  # 如果是危险time_r=time.time()  # 获得经过右监测点的时间breaki += 1i = lenimg - 470  # 检测中间20个while i < lenimg - 450:if not img[i] == setting:  # 如果是危险time_c = time.time()  # 获得经过中间监测点的时间tt = time_c - time_r  # 经过两个监测点的时间差# v=400/tt# t=s/v=250*tt/400=tt * 0.625   到小恐龙的时间# 设定一个线程,睡眠t-0.24s后按空格wait = tt * 0.625 - 0.24if 0.15 < wait < 1.2:jump = Thread(target=lambda st=wait: jump_(st))  # 跳跃线程jump.start()breaki += 1np.set_printoptions(threshold=np.inf)  # 输出不省略
# 开始按下*号,获得三个检测点,
# 鼠标指向小恐龙眼睛按*号
keyboard.wait('*')
x, y = ui.position()
print(x, y)
end_l = x - 80
centre = x + 400
end_r = centre + 300
y = y + 20
# 小恐龙距离最右边700像素
t = Thread(target=set_out)  # 进程绑定
a = 1
keyboard.wait('+')
t.start()
print('自动跳越开启')
keyboard.wait('-')
a = 0
t.join()
print('自动跳越关闭')

写时意识到,根本不需要膨胀腐蚀,仙人掌十分稀疏,用不着队列,可能改版了,没有翼龙,两个监测点不如直接测速度

第三版

from PIL import ImageGrab  # 截屏用
import pyautogui as ui  # 获取鼠标位置
from threading import Thread  # 进程
import keyboard  # 键盘监听
import numpy as np
import timedef jump_(wait):# 执行线程,睡眠后按空格# print(wait)time.sleep(wait)keyboard.press(' ')time.sleep(0.2)keyboard.release(' ')def set_out():global x, y, end_l, end_r, aperil = []  # 危险组 [[位置],[时间],]risk = 0j = 0while a:# time.sleep(0.1)# 获得一排像素点,二值化,并且转数组img = ImageGrab.grab(bbox=(end_l, y - 1, end_r, y)).convert('1')img = list(np.array(img)[0])# 开始处理数组,寻找危险位置lenimg = len(img)setting = img[0]  # 背景颜色i = 250  # 循环变量# 寻找危险位置while i < lenimg - 50:  # 找危险开始点if not img[i] == setting:  # 若与背景不同色risk = i  # 记录危险breaki += 1if i == lenimg - 50:  # 这一轮没找到continuei = lenimg - 50  # 循环变量j = 0while i > risk:  # 找危险结束点,求出危险近似中点if not img[i] == setting:  # 若与背景不同色if i - risk > 120:  # 距离差距太大j = 1else:risk = (risk + i) // 2breaki -= 1if j or risk < 300 or risk > lenimg-100:continue# 数组已经处理# 让危险距离恐龙0.25s时起跳time_1 = time.time()  # 得到时间if not len(peril) == 0:  # 有上一次的位置# 找到了,且在上一次出现位置的左边if peril[-1][0] > risk:tt = time_1 - peril[-1][1]  # 和上一次的时间差# v = s/tt    速度# t = s'/v = s'*tt/s   到小恐龙的时间# 设定一个线程,睡眠 t-0.25s 后按空格wait = (risk - 80) * tt / (peril[-1][0] - risk) - 0.25if 0 < wait < 1:jump = Thread(target=lambda st=wait: jump_(st))  # 跳跃线程jump.start()elif risk - peril[-1][0] < 50:  # 太近continueperil = [[risk, time_1]]np.set_printoptions(threshold=np.inf)  # 输出不省略
# 开始按下*号,获得三个检测点,
# 鼠标指向小恐龙眼睛按*号
keyboard.wait('*')
x, y = ui.position()
print(x, y)
end_l = x - 80
centre = x + 400
end_r = centre + 300
y = y + 20
# 小恐龙距离最右边700像素
t = Thread(target=set_out)  # 进程绑定
a = 1
keyboard.wait('+')
t.start()
print('自动跳越开启')
keyboard.wait('-')
a = 0
t.join()
print('自动跳越关闭')

总之比我手残分数高(这里小恐龙到最右端像素长约700)屏幕分辨率1920*1080,浏览器占右半边屏幕。屏幕不同可能无法正常躲避。(懒到不想做比例)就测试了1次,5003分。

python 谷歌小恐龙自动跳跃相关推荐

  1. Python谷歌小恐龙--Pygame

    文章目录 Python谷歌小恐龙(持续更新,未完结) 前言 正文 创建窗口 添加静态背景图 添加静态小恐龙 让小恐龙动起来 程序小优化(增加小知识) 背景动起来 小恐龙跳跃(代码大改,做好心理准备) ...

  2. python谷歌小恐龙,这还是你断网时的样子嘛~

    导语:

  3. 跳一跳python源码_使用Python实现跳一跳自动跳跃功能

    使用Python实现跳一跳自动跳跃功能 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  使用Python实现跳一跳自动跳跃功能.txt ] (友情提示:右键点上行 ...

  4. python编程跳一跳_使用Python实现跳一跳自动跳跃功能

    1.   OpenCV:模板匹配.    获得小跳棋中心位置 2.   OpenCV:边缘检测.    获得下一方块中心位置 Python+ADB+OpenCv,实现「 跳一跳 」自动化. / 01 ...

  5. chrome谷歌小恐龙作弊代码【无敌,快跑,高跳,一键满分】有需要的小伙伴快快看过来!

    谷歌小恐龙游戏是浏览器自带的,断网时候可以玩,当然联网状态也是可以玩的. 那么如何在联网的状态下进行游戏呢? 打开chrome, Ctrl + T 新建标签页,Alt + D或者Ctrl + L 定位 ...

  6. Java 独门绝技 用Java玩谷歌小恐龙游戏 (有源码)

    目录 1.Swing成品演示 2.简介 3.Java的Robot类 4.实战开发例子 1.Swing成品演示 2.简介 Java有一个很厉害的类Robot类,这个类可以模仿人的手去操作电脑,鼠标移动, ...

  7. 谷歌小恐龙 T-Rex 之 物理外挂

    快考试了, 做一个谷歌小恐龙的物理外挂玩玩(复习编程 拖延 效果视频: 谷歌小恐龙 T-Rex 之 物理外挂 随手记录一下过程: 材料: Tokymaker 5.0 的板子 Tokymaker 的光线 ...

  8. C++ 谷歌小恐龙#1 游戏制作实录

    版本号:1.0 嗨,我是一块铌金属,新年快乐呀! 之前不是说啃了EGE库嘛,所以我打算做一个项目练练手. 做什么呢--?谷歌小恐龙! 谷歌小恐龙就是一款谷歌浏览器内置的小游戏--多的我就不说了,在谷歌 ...

  9. 谷歌小恐龙HTML源代码

    啥也不说了,直接上代码 <!doctype html> <html><meta charset="utf-8"><meta name=&q ...

最新文章

  1. CDN全站加速助力企业云上升级
  2. 2001年的FLTK设置教程
  3. 编程入门python java和c语言_学习编程适不适合从Python入门?哪种语言更适合入门?...
  4. Mac上Java开发环境配置
  5. 怎么查看进程窗口_结束员工电脑进程/活动窗口的软件
  6. 找回被删并清空了回收站的文件
  7. Ubuntu 14.10安装SecureCRT 7.3
  8. 提前泄露小米10至尊版,博主赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型;​快手宣布7月将取消大小周|极客头条
  9. 前端JavaScript 加载优化
  10. 测试用例设计方法之选择原则
  11. 应届生如何轻松通过Java面试
  12. 微信小程序上传文件到阿里OSS教程
  13. C. K-th Not Divisible by n
  14. perf trace跟踪系统调用
  15. //数据结构:先序、中序、后序遍历二叉树。输入数据:abd##eg###c#f#h##
  16. 关于服务器ssl配置以后,https无法访问的问题
  17. 服务器安装内置无线网卡,笔记本怎么安装内置网卡 笔记本内置无线网卡安装步骤【图文】...
  18. 弹幕调试 jquery.danmu.js
  19. 云师大计算机调剂,云南师范大学2020考研调剂信息(二)
  20. iOS自定义裁剪区域,正方形圆形图片头像裁剪,仿QQ头像裁剪,圆形遮罩,矩型遮罩

热门文章

  1. 大型机学习之初步了解-大型机的现状与前景
  2. html鼠标悬浮缩放,CSS3鼠标悬浮过渡缩放效果
  3. html鼠标自定义悬浮窗,【推荐】js+DIV悬浮窗定位到鼠标位置的源代码
  4. 如何从新安装oracle,Oracle怎么重新安装?
  5. windows系统下的kms服务器_搭建 Windows KMS服务器
  6. mqtt Kafka 服务_MQTT的使用一 - 大耳朵小虎
  7. 织梦搭建本地环境以及FTP到本地搬家恢复数据库心得。
  8. linux 下查看 USB 设备的 PID 和 VID
  9. 触屏版canvas画布实现touch坐标计算(坐标偏移问题)
  10. 高德地图地区编码各省市区县poi及区划名称 代码/高德历史poi