C语言扫雷多线程解决倒计时,c语言实现扫雷秒杀挂

无聊时写的一个扫雷辅助,话不多说,看代码 (吐槽一下,csdn默认设置下载资源5积分,修改不了。。)

#include

#include

/**

发现个有意思的事,扫雷内部会判断:

如果用户是第一次点击,并且不幸的正好是点到雷了

那么会随机把这个雷转移到别的格子上,应该是增加用户体验吧..

--by习惯

**/

byte data[24][32]; //int类型报错,游戏默认byte存储棋盘,行要算上 左右 两边的 墙,所以列 +2 ,

int rows, cols; //实际的行和列,减少循环次数(也可扫描整个棋盘)

long BASE = 0x01005360; //基质

long BASEROWS = 0x010056A8;

long BASECOLS = 0x010056AC;

HWND getHWND() {

return FindWindow(NULL, "扫雷");

}

HANDLE getProcess() {

HWND hGame = getHWND();

DWORD pid;

GetWindowThreadProcessId(hGame, &pid);

HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, false, pid);

if(hpro == NULL) {

printf("打开进程失败");

exit(0); //退出程序

}

return hpro;

}

void getData() {

HANDLE hpro = getProcess();

LPVOID base = (LPVOID)BASE; //第一个是16墙 ,15未选择,143是雷 65是1,66是2

LPVOID baseRows = (LPVOID)BASEROWS;

LPVOID baseCols = (LPVOID)BASECOLS;

ReadProcessMemory(hpro, base, data, sizeof(data), NULL);

ReadProcessMemory(hpro, baseRows, &rows, 4, 0);

ReadProcessMemory(hpro, baseCols, &cols, 4, 0);

}

void click(int row, int col) {

HWND hGame = getHWND();

// baseXPos: 13,baseYPos: 57,每个方格大小 15 ×15

//注意:程序左上角坐标(0,0),x轴是向右递增,y轴是向下递增

int xPos = 5 + col * 16;

int yPos = 45 + row * 16;

PostMessage(hGame, WM_LBUTTONDOWN, 0, MAKELPARAM(xPos, yPos));

PostMessage(hGame, WM_LBUTTONUP, 0, MAKELPARAM(xPos, yPos));

}

void clear() {

getData();

for (int i=0; i

for (int j=1; j

if(data[i][j] != 143) {//不是雷

click(i+1, j);

}

}

}

}

int main() {

clear();

printf("OK");

return 0;

}

![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lxNzE0NTg4OTQ0_size_16_color_FFFFFF_t_70][]

[watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lxNzE0NTg4OTQ0_size_16_color_FFFFFF_t_70]: /images/1604721415523.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值