Python还能这么玩之用Python做个小游戏的 *
作者:yunyun云芸 发布时间:2022-12-11 18:27:43
一、前言
我打开4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~要怎么实现他自动做菜呢?
二、工具的准备
需要安装autopy和PIL以及pywin32包。
1.截屏和图像处理工具
截屏是获取游戏图像以供分析游戏提示,其实没有专门的工具直接Print Screen粘贴到图像处理工具里也可以。我用的是PicPick,相当好用,而且个人用户是免费的,而图像处理则是为了获取各种信息的,我们要用它得到点菜图像后保存起来,供 * 分析判断。
2.编辑器
用VIM,或写字板都可以
3.游戏原理分析
看这个游戏,有8种菜,每种菜都有固定的做法,顾客一旦坐下来,头顶上就会有一个图片,看图片就知道他想要点什么菜,点击左边原料区域,然后点击一下……不知道叫什么,像个竹简一样的东西,菜就做完了,然后把做好的食物拖拽到客户面前就好了。
顾客头上显示图片的位置是固定的,总共也只有四个位置,我们可以逐一分析,而原料的位置也是固定的,每种菜的做法更是清清楚楚,这样一来我们完全可以判断,程序可以很好的帮我们做出一份一份的佳肴并奉上,于是钱滚滚的来
三、开挂步骤
1.移动鼠标
import autopy
autopy.mouse.move(100, 100) # 移动鼠标
autopy.mouse.smooth_move(400, 400) # 平滑移动鼠标(上面那个是瞬间的)
这个命令会让鼠标迅速移动到指定屏幕坐标,如左上角是(0,0),然后向右向下递增,所以1024×768屏幕的右下角坐标是(1023,767)。
2.点击鼠标
#引入autopy模块
# ***
import autopy
autopy.mouse.click() # 单击
autopy.mouse.toggle(True) # 按下左键
autopy.mouse.toggle(False) # 松开左键
这个比较简单,不过记得这里的操作都是非常非常快的,有可能游戏还没反应过来呢,你就完成了,于是失败, 所以必要的时候,小睡一小会儿。
3.相似图像查找原理
用Google的“按图搜图”功能,输入一张图片时,它会把与这张图相似的图像都给你呈现出来,所以当你找到一张中意的图想做壁纸又觉得太小的时候,基本可以用这个方法找到合适的~我们就要利用和这个相似的原理来判断用户的点餐
def get_hash(self, img):
#使用PIL模块缩放图片,***
image = img.resize((18, 13), Image.ANTIALIAS).convert("L")
pixels = list(image.getdata())
avg = sum(pixels) / len(pixels)
return "".join(map(lambda p : "1" if p > avg else "0", pixels))
因为这是类的一个方法,所以有个self参数,无视它。这里的img应该传入一个Image对象,可以使读入图像文件后的结果,也可以是截屏后的结果。而缩放的尺寸(18,13)是我根据实际情况定的,因为顾客头像上的菜的图像基本就是这个比例。事实证明这个比例还是挺重要的,因为我们的菜有点儿相似,如果比例不合适压缩后就失真了,容易误判(我之前就吃亏了)。
得到一个图片的“指纹”后,我们就可以与标准的图片指纹比较,怎么比较呢,应该使用“汉明距离”,也就是两个字符串对应位置的不同字符的个数。
def hamming_dist(self, hash1, hash2):
return sum(itertools.imap(operator.ne, hash1, hash2))
来源:https://blog.csdn.net/yunyun889901/article/details/117467069
猜你喜欢
- 1. 安装Pyechartspip install pyecharts2. 图表基础2.1 主题风格添加主题风格使用的是 InitOpts(
- 一、需求描述1.图片展示从如图所示的数据中提取含有"python"、"ubuntu"关键词的所有行数
- 问题作为一个负责几个服务器的数据库管理员,我接到许多电话是关于磁盘空间的。我所做的第一件事是找到可以缩小的数据文件来释放一些磁盘上的空间。我
- C语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。Python是编译型还是解
- 这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢?1. 查看请
- 英文原文:http://www.smashingmagazine.com/2008/08/18/译文原文:http://blog.bingo
- 概要 “SQL Server 桌面引擎”(也叫 MSDE 2000)没有自己的用户界面,因为它主要设计为在后台运行。用户通过 MSDE 20
- 作者相关:http://www.picksun.com/blog/ 泡了论坛的艺术版块很长一段时间了,发
- 如何用表单的方式推送请求的信息?具体见下:<html><head><title>答复用户信息
- 这系列文章将介绍一下Oracle的基础知识,将会使用docker下运行的oracle11g的精简版进行说明。这篇文章介绍一下oracle的版
- Acunetix Web Vulnerability Scanner 是一款国外产的及其优秀的扫描工具,可以帮忙挖掘网站内的诸多漏洞,包括常
- 今天交流会上,分享前端的开发经验,有一条虽然很快带过,但是我倒是印象蛮深刻的,就写点小结来分享一下吧。不知道是标准害了大家还是大家害了标准,
- 在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这
- 最近正在用功的学习jQuery,在琢磨了不少别人写的功能之后,也开始尝试着自己开发一些功能。今天我做了一个简单的密码强度测试工具。这可功能的
- 对于access数据库的日期时间类型字段存储的日期,直接从数据库中读出显示的效果是带时间的如,2009-06-13 18:00 ,如果只是希
- 10月15日,Adobe公司正式面向全球公布了第10个版本的Flash播放器,这一版本播放器的昵称是大家已经所熟知的“宇宙”。这是一款增加了
- 本文实例讲述了Python3实现将文件归档到zip文件及从zip文件中读取数据的方法。分享给大家供大家参考。具体实现方法如下:'
- 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们
- 一.GO程序目录结构在GOPATH目录下的结构--bin(存放编译后生成的可执行文)|----hello.exe(可执行文件)--pkg(存
- 给网页添加打印按钮,除了打印之外,还有页面设置、打印预览、复制本文链接到剪贴板等网页基本应用。正象我在图中标注的,大部分按钮只能适用于IE浏