在python 冒出微信跳一跳的辅助程序后,跳一跳的分数分分钟上个一千几百不成问题。本人在校大学生一名,对于python语言尚未熟悉,,C/C++还是学得半桶水的样子,更不用说有多了解python如此丰富的库。为此,我利用简单的OpenCV和驱动ADB进行实现。

主要工具:ADB驱动,OpenCV库,visual studio

一,ADB驱动

该驱动可以实现手机触摸手机屏幕,截图,移动文件等等强大的功能,这个是PC端操作控制安卓端的主要工具。

二,OpenCV

OpenCV是一个跨平台计算机视觉库,功能相当强大;但本程序仅仅是使用到它的获取RGB值的功能。

三,工具的使用

1,利用ADB驱动在PC端对安卓端进行截图,移动文件到PC硬盘,模拟手指按压屏幕;
2,利用OpenCV对截图进行遍历,识别出相关的RGB值,进而判断棋子和板子的位置,以便于计算距离

四,本程序的下载和相关代码:

本程序可以通过百度云进行下载:
链接: https://pan.baidu.com/s/1XVroP6feRjq2MAybdCPrDg 密码: p5qp
本程序代码如下:
//# include "stdafx.h"
# include "stdlib.h"
# include "windows.h"
# include "iostream"
# include <opencv2\opencv.hpp>
# include "string.h"
# include "math.h"
using namespace std;
using namespace cv;
int hamX = 0;
int hamCount = 0;
int hamY = 0;
int hamHeight_1 = 10;//用于调节
int boardX_1 = 736;//第一个板子的x坐标
int boardY_1 = 1081;//第一个板子的y坐标
int boardX_2 = 409;//第二个板子的x坐标
int boardY_2 = 869;//第二个板子的y坐标
int hamWidth = 36;//棋子宽度的一半
double special = 1.35;//按压系数,该系数乘于距离就是按压时间
//以上变量只适合 1920x1080 分辨率的手机

void dojump(int  time)
{
 char char_time[20] = { 0 };
 sprintf_s(char_time, "%d", time);
 char bp[256] = "adb shell input swipe 550 1000 550 1000 ";
 strcat_s(bp, char_time);
 system(bp);
}
int findBoardX()
{
 int bVal_1 = 0, gVal_1 = 0, rVal_1 = 0;
 int bVal_2 = 0, gVal_2 = 0, rVal_2 = 0;
 int boardX = 0;
 int boardY = 0;
 int boardCount = 0;
 int flag = 0;
 IplImage *img = cvLoadImage("d:/newfile/current.png", 1);
 for (int y = 500; y < img->height; y++)
 {
  CvScalar s_1 = cvGet2D(img, y, 1);
  bVal_1 = s_1.val[0];
  gVal_1 = s_1.val[1];
  rVal_1 = s_1.val[2];
for (int x = 0; x < img->width; x++)
  {
if (abs(x - hamWidth)<74)
   {
continue;
   }
CvScalar s_2 = cvGet2D(img, y, x);
   bVal_2 = s_2.val[0];
   gVal_2 = s_2.val[1];
   rVal_2 = s_2.val[2];
if ((abs(bVal_1 - bVal_2) + abs(gVal_1 - gVal_2) + abs(rVal_1 - rVal_2)) > 20)
   {
    //cout << bVal_2 << endl;
    //cout << gVal_2 << endl;
    //cout << rVal_2 << endl;
    flag = 1;
    boardX += x;
    boardCount++;
   }
}
  if (flag == 1)
  {
break;
  }
 }
 boardX = boardX / boardCount;
 return boardX;
}
int findBoardY(int xham, int yham, int xboard)
{
 int y = yham + (int)(abs(xham - xboard)*abs(boardY_1 - boardY_2) / abs(boardX_1 - boardX_2));
return y;
}
double cdistance(int x_1, int y_1, int x_2, int y_2)
{
double result = 0.0;
 result = sqrt(pow(x_1 - x_2, 2) + pow(y_1 - y_2, 2));
 //cout << result << endl;
 return result;
}
int main()
{
 while (1)
 {
  Sleep(1500);
  system("adb shell screencap -p /sdcard/current.png");
  system("adb pull /sdcard/current.png d:/newfile");
  //截图并且移动图片
  IplImage *img = cvLoadImage("d:/newfile/current.png", 1);
  int bValue = 0;
  int gValue = 0;
  int rValue = 0;
for (int y = 400; y < img->height; y++)
  {
   for (int x = 0; x < img->width; x++)
   {
    CvScalar s = cvGet2D(img, y, x);
    bValue = s.val[0];
    gValue = s.val[1];
    rValue = s.val[2];
    if (rValue > 50 && rValue < 60 && gValue > 53 && gValue < 63 && bValue > 95 && bValue < 110)
    {
     hamX += x;
     hamCount++;
     hamY = y > hamY ? y : hamY;
}
   }
  }
  hamX = hamX / hamCount;
 
  hamY -= hamHeight_1;
  int boardX = findBoardX();
  int boardY = findBoardY(hamX, hamY, boardX);
  int time = (int)(special*cdistance(hamX, hamY, boardX, boardY));
  time = time > 200 ? time : 200;
  dojump(time);
  hamX = 0;
  boardX = 0;
  boardY = 0;
  hamY = 0;
  hamCount = 0;
  //初始化变量
 }
 return 0;
}
本人在校大学生菜鸡一名,欢迎各位dalao指点
注意:1.本程序针对分辨率为1920x1080的安卓手机设计,对于其他分辨率的手机可能会有跳不准的情况,有需要可以扣我进行数据修正Q:1226103307
2.未经允许,不得转载。

C/C++实现微信跳一跳辅助(学习纪录)相关推荐

  1. 关于微信跳一跳辅助脚本的代码学习

    关于微信跳一跳辅助脚本的代码学习 最近微信跳一跳相当火热,当然油然而生的就是外挂了,所以抽空学习了下外挂的一些思路. 首先从目录结果来看 - Tools 实际上是windows需要用到的一些工具 同时 ...

  2. python微信公众号秒杀代码_微信跳一跳辅助python代码实现

    微信跳一跳辅助python代码实现 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  微信跳一跳辅助python代码实现.txt ] (友情提示:右键点上行txt文档 ...

  3. 微信跳一跳辅助php,微信跳一跳辅助python代码实现

    微信跳一跳辅助的python具体实现代码,供大家参考,具体内容如下 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离.可能刚开始上手的时候,因为时间距 ...

  4. 微信跳一跳java实现自动跳_微信跳一跳辅助Java代码实现

    微信跳一跳辅助的Java具体实现代码,供大家参考,具体内容如下 1.参考知乎教你用Python来玩微信跳一跳,鉴于本人Python一直都是半吊子水平,之前打算用python刷分,可无奈安装python ...

  5. 100行微信跳一跳java_安卓版微信跳一跳辅助 跳一跳辅助Java代码

    安卓版微信跳一跳辅助,java实现,具体内容如下 已经看到网上有大神用各种方式实现了,我这是属于简易版ADB命令式实现. 操作方法 1.光标移动到起始点,点击FORM 2.光标移动到目标点,点击TO ...

  6. c语言微信自动跳一跳,C/C++知识点之微信跳一跳辅助c++实现 轻松上万

    本文主要向大家介绍了 C/C++知识点之微信跳一跳辅助c++实现 轻松上万,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助.写在前面 17年年底Wechat出了这个跳一跳的小游戏,今 ...

  7. 微信跳一跳python全部代码_微信跳一跳辅助python代码实现

    微信跳一跳辅助的python具体实现代码,供大家参考,具体内容如下 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离.可能刚开始上手的时候,因为时间距 ...

  8. 微信跳一跳辅助程序开发,基于C++与opencv图像识别

    趁着期末这段时间,课程不多,在学习opencv,闲来无事,看到网上有大神用python实现了Wechat的跳一跳的辅助外挂,看了大概原理,似乎跟我最近学的opencv好像很沾边,但是鄙人实在不懂Pyt ...

  9. python跳一跳编程构造_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

  10. python hook pc微信_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

最新文章

  1. mysql的分区技术作用_理解MySQL数据库分区管理的技术细节
  2. (十三)洞悉linux下的Netfilteramp;iptables:为防火墙增添功能模块【实战】
  3. linux下的环境变量/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
  4. 只了解View的事件分发是不够的,来看下输入系统对事件的处理
  5. 老男孩教育每日一题-2017-04-25:怎样产生一个子shell?
  6. HEVC码率控制介绍(R-Lamda)
  7. Windows 2003 网络负载均衡的详细配置文档
  8. 【事件驱动】【数码管识别】 一台电脑能接多少台USB设备
  9. 惠普win7驱动_hp打印机驱动如何安装 hp打印机驱动安装方法【步骤详解】
  10. StringUtil
  11. c语言lua游戏辅助,Lua游戏脚本语言入门
  12. 躺在床上刷抖音,不如来写第一个 GO 程序入门篇
  13. (附源码)spring boot火车订票系统 毕业设计 031012
  14. 关于Wincc 7.0 sp1 亚洲版的下载链接地址及授权,破解
  15. Fiddler Everywhere抓包之视频下载
  16. LeetCode994. 腐烂的橘子( BFS )
  17. win7 IIS Web.config节点锁定问题
  18. Swift+Ubuntu on Mac
  19. PS 人像处理插件PT Portrait
  20. C300--HGU ONU 配置思路指导_方式1

热门文章

  1. “得到听书”和“樊登阅读”的体验感受
  2. 2.6.4 Qtimer定时器介绍
  3. 个性化快餐桌椅发展趋势
  4. INDY工具的使用(读深入理解java虚拟机验证)
  5. 用开放和流动反抗熵增,生态建设终极哲学——保险生态建设...
  6. 同传牛人:用一年时间考上欧盟口译司
  7. Odoo启动过程详解
  8. 学编程之前需要哪些掌握的基础知识
  9. laravel repository模式使用
  10. MMDet: ValueError: need at least one array to concatenate