1. 程式人生 > >微信跳一跳(遊戲輔助小外掛C語言版)

微信跳一跳(遊戲輔助小外掛C語言版)


相信微信跳一跳這個遊戲大家應該都或多或少聽過或者玩過,想必好多朋友看到自己好友們得高分自己卻分數老是玩不高!

之前在這個遊戲剛出來時候有人用Python寫出了一個小外掛,隨後網上各種各樣的外掛包括物理外掛層出不窮,今天就給大家分享一下如何自己用C語言寫一個小的跳一跳遊戲輔助外掛(因能力有限,這個小外掛只針對安卓系統)。

首先我們需要準備一個工具ADB(Android Debug Bridge(安卓除錯橋) )用來將我們的電腦與我們的手機建立起聯絡

ADB工具下載:adb下載

接下來我們給電腦配置環境變數,為接下來我們的步驟做準備


首先右鍵我的電腦屬性,找到高階系統設定開啟,然後就可以看到環境變數的選項


單擊開啟,在系統變數中找到Path


然後雙擊進行編輯,接下來開啟我們剛才下載好的ADB工具的資料夾,拿到它的儲存路徑


然後將路徑複製,貼上到我們剛才的path變數內


win10系統的介面如上圖所示,老版本的Windows,環境變數用分號;隔開然後貼上就行

接下來我們在手機上開啟USB除錯,連線手機(部分手機需要處於開發者模式才能進行USB除錯,在系統設定—關於手機—多次點選版本號即可進入開發者模式),然後在計算機上執行cmd來看我們環境變數是否已經新增好了


在cmd中輸入 adb devices,如上圖所示出現一串字元後面有 device就說明我們手機已經通過adb工具與我們電腦連線起來了

接下來我們進行我們的程式碼編輯開啟我們的vs或者vc

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
int main()
{
	int d;
	int time;
	char str[100];
	while (1)
	{
		printf("請輸入距離:");
		scanf("%d",&d);
		time = d *2.3;
		sprintf(str, "adb shell input swipe 200 500 200 500 %d", time);
		system(str);
	}
	return 0;
}

玩過得朋友都知道,跳一跳遊戲中跳的距離跟按壓螢幕的時間成正比;所以我們定義一個d變量表示我們要跳的距離(我們可以用尺子進行量取),time表示按壓的時間,我們可以找到這個時間與距離的關係,本人手機螢幕1080*1920解析度,以0.01cm為一個單位,得到的距離公式是

time = d *2.3;
不同螢幕大小手機直接有或多或少誤差,大家可以根據自己手機對這個d與time關係進行修改

不難看出整個程式碼的核心部分就是

                sprintf(str, "adb shell input swipe 200 500 200 500 %d", time);
system(str);

這兩行程式碼到底是什麼意思呢?

在這裡我們拿system("adb shell input swipe 200 500 200 500 1000")來舉例,這句程式碼的意思就是使用adb命令 shell input swipe給我們手機發送一個觸控式螢幕幕的指令,前兩個引數200 500代表按壓螢幕時按下去的位置座標,接下來兩個引數200 500代表按壓結束時離開螢幕的位置座標;最後的1000代表按壓的時間1000毫秒;

而sprintf函式是字串格式化命令,其功能是把格式化的資料寫入某個字串中
因為每次我們跳躍的距離都是不同的所以我們才採用sprintf函式進行格式化的寫入


這是我自己進行測試時玩的,可以看出僅僅靠著不到20行的程式碼我們達到了不錯的效果,輕鬆上百分不成問題

但是本局遊戲的成績差不多一千多分但是沒有計入到排行榜中,可能因為得分太高了,因為遊戲可能認為我是在刷分,

所以我們分析一下ta檢測外掛無非這幾種可能

1.是否反覆截圖(因為好多更高階跳一跳的外掛都是通過截圖然後獲取距離)

2.是否你觸屏的一直是在接觸一個點,我上面程式碼中一直觸屏的位置是200 500,我們通過常識就可以知道如果你是正常玩的你不可能每次都觸控一個點,所以針對上面程式碼我們可以將觸屏的位置利用rand設定成在一個在一定範圍內的隨機值

3.就是你的得分情況,如果你每次都跳到最中央你的得分會是1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 32 32 .......

所以如果你給次都跳到最中心他也可能會認為你是在使用外掛,所以你可以用外掛跳幾下再自己跳幾下,這樣就不容易被遊戲認為是外掛了

以上就是給大家分享的一個不到二十行C語言程式碼寫的 微信跳一跳遊戲輔助外掛 ,這個是最簡單的一種通過尺子量距離來得高分,以後有機會再給大家分享更高階的版本,通過截圖,然後滑鼠點選圖片中人的位置和終點位置自動計算距離進行跳躍的方法!

如果說大家有什麼好的建議或意見歡迎反饋!

相關推薦

遊戲輔助外掛C語言

相信微信跳一跳這個遊戲大家應該都或多或少聽過或者玩過,想必好多朋友看到自己好友們得高分自己卻分數老是玩不高! 之前在這個遊戲剛出來時候有人用Python寫出了一個小外掛,隨後網上各種各樣的外掛包括物理外掛層出不窮,今天就給大家分享一下如何自己用C語言寫一個小的跳一跳遊戲輔

程式API——支付詳解順便講一下我遇見的坑

https://blog.csdn.net/cwh1010714845/article/details/78944335     學習微信小程式已經半個多月了,終於接觸到小程式中一個很重要的功能——微信支付。接下來就給大家詳細講解一下微信支付功能的呼叫。 一想到微信支

Android仿最新自定義相機長按拍攝,輕點拍照

最近在開發即時通訊這個模組的時候使用到了自定義的相機,需求與微信一樣,要求相機能長按和輕點,當時在網上找自定義相機的資源,很少,所以,我在這裡把我的一些開發經驗貼出來,供大家學習。 大致完成的功能如下: 長按拍攝視訊,輕點拍照 前後攝像頭的切換 閃光的

Android 支付整合重點已經看過官方開發文件

整合微信支付重點,適用於有整合經驗並且已經看過開發文件的同學 1.申請開通 按照官方文件步驟 (註冊平臺賬號——認證(300 如果失敗3次需再付300認證,資訊提前確認)——建立應用稽核(簽名用微信的提取工具)——開通支付功能——整合) 2.整合

資料結構C語言第三基礎實驗

1、基於sequlist.h中定義的順序表,編寫演算法函式reverse(sequence_list *L),實現順序表的就地倒置。 2、編寫一個演算法函式void sprit( sequence_list *L1,sequence_list *L2,sequence_list *L3), 將順

C語言連結串列——實現單向連結串列建立、插入、刪除等簡單操作包含個人理解說明及註釋,新手跟著寫程式碼

我學習了幾天資料結構,今天下午自己寫了一個單向連結串列的程式。我也是新手,所以剛開始學習資料結構的菜鳥們(有大牛們能屈尊看一看,也是我的榮幸)可以和我一起共同學習、討論,當然也很高興能指出我的錯誤,因為這是我們一起成長的過程。本程式碼包含我在寫程式時的一些個人理解的說

表達式求值二叉樹方法/C++語言描述

urn sse 二叉 返回 新的 求值 calc ken node   二叉樹方法求值對運算數處理的方法與棧方法求值不太相同,除了將字符串中的運算數轉換為浮點類型外,還需要生成新的節點: 1 void Calculator::dealWithNumber(char *&

鏈表的操作自己實現的-c語言

自己實現 main clas 一個 class node ret scan bsp 描述:pass #include<stdio.h> #include <stdlib.h> typedef struct _node{ int v

資料結構C語言第三 基礎實驗二

1、編寫函式slnklist delx(linklist head, datatype x),刪除不帶頭結點單鏈表head中第一個值為x 的結點。 並構造測試用例進行測試。 2、假設線性表(a1,a2,a3,…an)採用不帶頭結點的單鏈表儲存, 請設計演算法函式linklist reverse1

資料結構C語言讀書筆記1(基本概念和術語)

資料: 所有輸入到計算機中,並被計算機程式處理的符號的總稱。 資料元素: 資料的基本單位,在計算機程式中經常被當做一個整體進行考慮和處理 資料物件: 性質相同的資料元素的集合,是資料的一個子集。 資料結構: 相互之間存在一種或多種特定關係的資料元素的集合。這種資料元素之間

N皇后問題搜尋C語言

用陣列int x[N]表示棋盤狀態,例如x[0]=1表示第0行皇后放在第1列。 皇后k在第k行第x[k]列:(k,x[k]) 測試方法:測試皇后k在第k行第x[k]列時,是否與前面已放置好的皇后j相攻擊。 x[j]== x[k] 時,兩皇后在同一列上; abs(k-j)==abs(x[j]-

LeetCode -- 50 Pow(x, n)C語言

題目描述: 程式碼如下(附有詳解): double myPow(double x, int n) //如果n為零,表明冪數為0,直接返回1 if(n == 0) return 1; //如果n為零,表明冪數為0,直接返回x

資料結構c語言中線性表的單鏈表儲存結構

本文轉自:https://blog.csdn.net/prlhnxx/article/details/79174782 /* run this program using the console pauser or add your own getch, system("pause") or i

初夏談:斐波那契三種實現方法C語言第三種相信你沒見過

斐波那契數列(Fibonaccisequnce),又稱黃金分割數列。研究斐波那契數列有相當重要的價值,例在現代物理、準晶體結構、化學等領域都有直接的應用。因此研究斐波那契數列也是很有必要的。 今天初夏將為大家帶來計算斐波那契數列第n位的三種方法 第一種利用遞迴的方法計算,程式碼相當簡單,但其

如何在串列埠除錯助手上,使用printf()函式顯示十進位制的資料及漢字說明c語言

估計很多人和我一樣,很想直接在串列埠除錯助手上顯示十進位制資料,我最近在做一個專案,當然本人也是小白,但這個問題已經被我解決了,希望幫助需要的人。 我們都知道,串列埠助手一般都只能顯示十六進位制資料和字元,如果我們想將控制器的實時資料通過串列埠傳送到上位機,方便監測,最好直接顯示十進位制資料。廢

關於嚴蔚敏老師《資料結構C語言》書中程式碼的誤解

清華大學嚴蔚敏老師的《資料結構(C語言版)》以其嚴謹被奉為經典,我是從其Pascal版一路追著買到C語言版,一直覺得這本書理論功力深厚,是不可多得的資料結構教材。但其編寫過程中為避免太過拘泥於具體語言細節,使用了ADT描述,具體演算法中使用了偽碼描述,對於新手直接把程式碼原樣照抄是沒法直接在電腦

迪傑斯特拉演算法可列印最短路徑資料結構題集C語言7.11

轉自 https://blog.csdn.net/cxllyg/article/details/7604812   #include <iostream> #include <iomanip> #include <string> usi

排序演算法C語言

交換類 氣泡排序(Bubble Sort) O(n2)O(n^2)O(n2) 最簡單的一種排序演算法。先從陣列中找到最大值(或最小值)並放到陣列最左端(或最右端),然後在剩下的數字中找到次大值(或次小值),以此類推,直到陣列有序排列。 void Bubble

L1-028 判斷素數C語言

L1-028 判斷素數 (10 分) 本題的目標很簡單,就是判斷一個給定的正整數是否素數。 輸入格式: 輸入在第一行給出一個正整數N(≤ 10),隨後N行,每行給出一個小於2 ^​31 的需要判斷的正整數。 輸出格式: 對每個需要判斷的正整數,如果它是素數,則在

LeetCode--153 尋找旋轉排序陣列中的最Find Minimum in Rotated Sorted ArrayC語言

題目描述: 解題思路:可以使用順序遍歷,將最小值記錄下來,時間複雜度為O(n),但是根據題目描述,該陣列為旋轉排序陣列,這裡就可以聯想到二分查詢,試著用二分查詢的思想,首先使用Lindex和Rindex記錄左右區間的下標,然後再用Mindex表示區間中間元素的下標,根據