1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信小游戏《头脑王者》答题辅助脚本

微信小游戏《头脑王者》答题辅助脚本

时间:2020-11-09 12:24:24

相关推荐

微信小游戏《头脑王者》答题辅助脚本

继微信跳一跳之后的又一个小游戏头脑王者又火起来了,相信不少人也都想重蹈跳一跳的过程,再次写一个辅助脚本。

上一波图吧!

上代码:

# _*_ coding:utf-8 _*_import ioimport osfrom aip import AipOcrfrom PIL import Imagefrom io import BytesIOfrom past.builtins import raw_inputimport requestsimport sys__author__ = 'admin''''这就是可答题辅助,我还不能让他自动答题,如果自动答题的话效率太低'''# 解决 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX报错sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')def pull_screenshot(picname):# adb驱动截取屏幕,并将图片上传至本地os.system("adb shell screencap -p /sdcard/" + picname + ".png")os.system("adb pull /sdcard/" + picname + ".png .")# 打开图片o = Image.open(r"D:\python\headking\\" + picname + '.png')# 获取问题、答案的矩形区域question_img = o.crop((120, 600, 940, 800))answer_img = o.crop((120, 955, 940, 1720))# 将截取的问题同答案合并new_img = Image.new('RGBA', (820, 965))new_img.paste(question_img, (0, 0, 820, 200))new_img.paste(answer_img, (0, 200, 820, 965))# 创建二进制数据流new_img_fb = BytesIO()# 将合并后的图片的数据写入内存new_img.save(new_img_fb, 'png')# 返回数据return new_img_fbdef get_content(new_img_fb):# 百度的API(自行前往百度云注册)APP_ID = 'XXXX'API_KEY = '********************'SECRET_KEY = '********************'# 调用百度的通用文字识别client = AipOcr(APP_ID, API_KEY, SECRET_KEY)# 获取数据流中的内容,是个字典的形式content = client.basicGeneral(new_img_fb.getvalue())return contentdef check_result(content):# 获取所有文字信息(问题和答案),为列表形式topic = content.get('words_result')# 初始化字符串question = ''# 识别正常的情况下,后四个元素是答案,则第一位至倒数第四位就是问题for i in topic[:-4]:# 拼接成“问题”(列表中每个元素又是一个字典)question += i.get('words')# print(question)# 初始化列表answers = []# 识别正常的情况下,后四个元素是答案for i in topic[-4:]:# 存储答案进列表answers.append(i.get('words'))# print(answers)# 百度一下,你就知道的网址url = '/s'# headers中是以字典的形式存储的,不能缺少键和值,所以'User-Agent'要作为键存在headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'' Chrome/51.0.2704.106 Safari/537.36'}# 可以尝试观察下百度搜索问题时的网址内容,其中就包含‘wd’data = {'wd': question}# 这里涉及到爬虫时的知识,获取网页内容res = requests.get(url, params=data, headers=headers)res.encoding = 'utf-8'html = res.textfor i in range(len(answers)):# 将网页中各个答案的计数也存入列表中answers[i] = (html.count(answers[i]), answers[i])# 将列表倒序answers.sort(reverse=True)return answersdef run():count = 0while True:# 按下回车键才可继续,简单的的题可以手动答,难得题可以使用该工具press_key = raw_input(u"输入回车键以便继续:")new_img_fb = pull_screenshot(str(count))content = get_content(new_img_fb)answers = check_result(content)print(answers)# 计数自增1,方便存储图片count += 1if __name__ == '__main__':run()

预计结果:金銮殿

测试结果:

测试结果与预计结果一致!

(以上代码参考了大神的作品,自己又添加了些注释,不喜勿喷!)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。