转载

Python 制作 Android 游戏外挂

程派微信号:codingpy

本文系作者  阳光树林 授权编程派原创发表,并经编程派编辑,转载请注明出处及微信ID(codingpy)。省略了相关代码,详情请点击阅读原文。

最近在玩一款背单词的手机游戏:单词英雄。这是一个将背单词和卡牌游戏相结合的游戏,通过选择正确的单词意思进行有效攻击,边玩游戏就把单词给背了。


游戏的界面是这样的:

Python 制作 Android 游戏外挂

通过选择单词的意思进行攻击,选对了就正常攻击,选错了就象征性的攻击一下。玩了一段时间之后琢磨可以做成自动的,通过PIL识别图片里的单词和选项,然后翻译英文成中文意思,根据中文模糊匹配选择对应的选项。

查找了N多资料以后开始动手,程序会用到以下这些库:

  1. PIL:Python Imaging Library 大名鼎鼎的图片处理模块

  2. pytesser:Python下用来驱动tesseract-ocr来进行识别的模块

  3. Tesseract-OCR:图像识别引擎,用来把图像识别成文字,可以识别英文和中文,以及其它语言

  4. autopy:Python下用来模拟操作鼠标和键盘的模块。

安装步骤(win7环境):

  • 安装PIL,下载地址: http://www.pythonware.com/products/pil/,安装Python Imaging Library 1.1.7 for Python 2.7。

  • 安装pytesser,下载地址: http://code.google.com/p/pytesser/,下载解压后直接放在 C:/Python27/Lib/site-packages下,在文件夹下建立pytesser.pth文件,内容为C:/Python27/Lib/site-packages/pytesser_v0.0.1

  • 安装Tesseract OCR engine,下载: https://github.com/tesseract-ocr/tesseract/wiki/Downloads,下载Windows installer of tesseract-ocr 3.02.02 (including English language data)的安装文件,进行安装。

  • 安装语言包,在 https://github.com/tesseract-ocr/tessdata下载chi_sim.traineddata简体中文语言包,放到安装的Tesseract OCR目标下的tessdata文件夹内,用来识别简体中文。

  • 修改C:/Python27/Lib/site-packages/pytesser_v0.0.1下的pytesser.py的函数,将原来的image_to_string函数增加语音选择参数language,language='chi_sim'就可以用来识别中文,默认为eng英文。

  • 安装autopy,下载地址: https://pypi.python.org/pypi/autopy,下载autopy-0.51.win32-py2.7.exe进行安装,用来模拟鼠标操作。

程序的思路:

首先是通过模拟器在WINDOWS下执行安卓的程序,然后用PicPick进行截图(使用其他截图工具将游戏界面截下亦可),对战斗画面中需要用到的区域进行测量,记录下具体在屏幕上的位置区域。

用图中1来判断战斗是否开始(保存下来用作比对),用2,3,4,5,6的区域抓取识别成文字。

Python 制作 Android 游戏外挂

2. 对于1位置的图片提前截一个保存下来,然后通过计算当前画面和保存下来的图片的距离,判断如果小于40的就表示已经到了选择界面,然后识别2,3,4,5,6成字符,判断如果2位置识别成英文字符的,就用2解析出来的英文在字典中获取中文意思。

然后再通过2的中文意思和3,4,5,6文字进行匹配,匹配上汉字最多的就做选择,如果匹配不上默认返回最后一个。之前本来考虑是用Fuzzywuzzy来进行模糊匹配算相似度的,不过后来测试了下对于中文匹配的效果不好,就改成按汉字单个进行匹配计算相似度。

3. 最后通过mouseMove调用autopy操作鼠标点击对应位置进行选择。

程序运行的录像:

程序完成后使用正常,因为图片识别准确率和字典的问题,正确率约为70%左右,效果还是比较满意。

程序总体来说比较简单,做出来也就是纯粹娱乐一下,串联使用了图片识别、中文模糊匹配、鼠标模拟操作,算是个简单的小外挂吧。

源程序和用到的文件如下:

http://git.oschina.net/highroom/My-Project/tree/master/Word%20Hero

投稿相关,请阅读: 编程派微信公众号正式接受外部投稿啦!

欢迎转发至朋友圈。如需转载至其他公众号、网站、移动端 App,请联系「编程派」获得授权。

【精华推荐】

Python性能分析大全

2016年春季互联网高端人才流动报告

硅谷码农是这样秀逼格、撩妹子的!

Python 制作 Android 游戏外挂

原文  http://mp.weixin.qq.com/s?__biz=MzAwNDc0MTUxMw==&mid=2649639137&idx=1&sn=f3625e1d689c43e203095aef7bae3370
正文到此结束
Loading...