50行Python代码玩转微信小游戏"颜色王者"

游戏模式

在微信小程序里搜索“颜色王者”,即可找到该游戏。
游戏的目标比拼色彩敏感度。点击图片中不一样的色块即可。

这游戏前面20多级还是比较简单的,到后面色块实在太小,颜色越来越接近以至于到下图的程度。

工具介绍

  • Python 3.5
  • Android 手机
  • Adb 驱动
  • Python OpenCV库

原理说明

  1. 首先使用adb截图,并且推送到电脑
  2. 调用OpenCV库,读入图片,把状态栏等区域截掉
  3. findContours函数识别边框
  4. minEnclosingCircle找出最小外接圆(目的是找出色块的中心)
  5. 利用像素值比较出不同的色块

程序源码

import cv2
import os
import timedef compare(rgb1, rgb2):if (abs(rgb1[0]-rgb2[0]) < 3 and abs(rgb1[1]-rgb2[1]) < 3 and abs(rgb1[2]-rgb2[2]) < 3):return Trueelse:return False
while True:os.system('adb shell screencap -p /sdcard/yanse.png')os.system('adb pull /sdcard/yanse.png G:/Python_code/wechat_jump_game-master/yansewangzhe/yanse.png')original_image = cv2.imread('G:/Python_code/wechat_jump_game-master/yansewangzhe/yanse.png')#选取出图片中准备识别的部分ROIimage = original_image[400:1500, 20:1200]res = cv2.resize(ROIimage, (900, 900), interpolation=cv2.INTER_CUBIC)gray_img = cv2.cvtColor(res, cv2.COLOR_RGB2GRAY)ret, binary_img = cv2.threshold(gray_img, 50, 200, cv2.THRESH_BINARY)im, contours, hierarchy = cv2.findContours(binary_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)list1 = []list2 = [](x0, y0), radius = cv2.minEnclosingCircle(contours[0])for c in contours:(x, y), radius = cv2.minEnclosingCircle(c)if compareColor(res[int(x0), int(y0)], res[int(x), int(y)]):list1.append([int(x), int(y)])else:list2.append([int(x), int(y)])print(list1)print(list2)# 将不同颜色的色块中心标注黑色圆点if len(list1) == 1:cv2.circle(res, (list1[0][1], list1[0][0]), 2, (0, 0, 0), 10)else:cv2.circle(res, (list2[0][1], list2[0][0]), 2, (0, 0, 0), 10)cv2.imshow('Window1', res)cv2.waitKey()cv2.destroyAllWindows()time.sleep(1)

实际使用

程序按任意键后,会立即再截取新图片,运行效果如下。

最终当然是打满了52级。

Future

后面的小方块实在太多,对着电脑找点实在麻烦。当然也可以直接让adb点击,不过怼齐电脑和手机上的像素点有点麻烦。

PS:最强王者居然有6个人,真是难以想象之前5个人是怎么识别后面的小方块的。

50行Python代码玩转微信小游戏颜色王者相关推荐

  1. 20行python代码的入门级小游戏-200行Python代码实现的2048小游戏

    2048这个小游戏大家都不陌生,应该都玩过,之前已经在网上见过各个版本的2048实现了,有JAVA.HTML5等,今天我就给大家来一个我自己在 实验楼 学到的python版2048.所有代码加起来才2 ...

  2. 【Python妙用】用200行Python代码制作一个迷宫小游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  3. python写一个游戏多少代码-使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  4. 50行python游戏代码_使用50行Python代码从零开始实现一个AI平衡小游戏

    使用50行Python代码从零开始实现一个AI平衡小游戏 发布时间:2020-10-23 09:26:14 来源:脚本之家 阅读:74 集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何 ...

  5. python50行小游戏_使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  6. 愿你是那天上星,永远闪耀照亮夜空——50行Python代码绘制满天星

    今天用50行Python代码绘制了星空满天的动图.解释下为什么要做这样一件事,因为今天是空军成立72周年纪念日,希望通过这样的方式去表达出每个年轻人都向往像星空中的一颗星星,散发着自己的光芒照亮整个夜 ...

  7. python做出来的小程序、可以在win10上面运行_超详细,手把手教你用20行Python代码制作飞花令小程序!...

    原标题:超详细,手把手教你用20行Python代码制作飞花令小程序! 来源:早起Python 作者:陈熹 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令. ...

  8. 用python玩转微信小游戏 大小猜猜看

    用python玩转微信小游戏 大小猜猜看 游戏模式 在微信小程序里搜索"大小猜猜看",即可找到该游戏. 游戏的目标比拼计算能力,找出谁大谁小,一共有40题,全部答对即挑战成功. 一 ...

  9. 微信小游戏颜色风暴自动化

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 微信小游戏颜色风暴自动化 提示:以下是本篇文章正文内容,下面案例可供参考 一.环境 python opencv pyautogui 二 ...

最新文章

  1. python测试开发自学教程-自动化平台测试开发:Python测试开发实战_PDF电子书
  2. 【测试基础】测试用例的设计方法
  3. 远去的背影与落日以及一对蒙古年轻夫妻
  4. UnitTest in .NET 系列文章目录
  5. 均分纸牌(经典贪心)
  6. 淘宝端智能演进和思考
  7. 清华、北大联合调研995家中小企业,如何穿越3个月的生死火线
  8. python必备入门代码-python基础入门这一篇就够
  9. 基于OpenCV的计算机视觉入门(5)图像美化(下)
  10. 安装MyBatis教程
  11. 【ubuntu工具】ubuntu下文件对比软件meld
  12. php安装Laravel框架 全过程 傻瓜式教学
  13. matlab计算单模光纤耦合效率的积分,用于光纤阵列耦合的微透镜阵列的设计和耦合效率的分析...
  14. 最新资讯:iPhone 11显示模块更换计划,用于解决触摸问题
  15. 电流模架构Bandgap设计与仿真
  16. ibm服务器进去阵列卡状态,IBM阵列卡介绍和服务器对阵列卡的支持情况
  17. 使用openCV进行视频人脸识别
  18. 数字藏品指南系列第五篇:验证智能合约
  19. java中计算器算cos值,Android开发中计算器的sin、cos及tan值计算问题分析
  20. 三级等保 服务器开启日志审计功能

热门文章

  1. 直播流播放,视频监控/直播监控。 使用火山引擎VePlayer播放50+直播流保证流程运行。思路理解后类比腾讯TRTC和阿里播放器
  2. java中的Arrays.sort()的几种用法
  3. 听了一个毕业十年学长讲座后总结的感想
  4. LaTeX之画图语言和画图软件
  5. 917:Knight Moves
  6. 2023.6.8每日一题
  7. 有哪些入门级蓝牙耳机推荐?盘点2022高性价比蓝牙耳机
  8. 小程序源码:2022虎年背景全新UI头像框制作
  9. Android中更换头像功能的实现
  10. QT5制作定制进度条(二)