好友
阅读权限10
听众
最后登录1970-1-1
|
以爱之名
发表于 2024-7-10 11:26
本帖最后由 以爱之名 于 2024-7-10 13:04 编辑
之前c语言写过一个简易的扫雷,玩上了这个,一直玩不过关,纯算有点累,后面又想学什么扫雷公式,懒得背。就想着逆向一下吧。
图片有点不会弄,对着文本看吧,不难
游戏链接:https://www.minesweeper.cn/
图片要倒着看
1.首先找到canvas的id然后搜索
2.找到这边,paf.onmousedown
3.卡断点,找这边入手,然后就是分析,逻辑,主要代码,
卡断点发现:S98函数就是鼠标右键触发的函数
断点找到o0o函数,就是相当于点击显示该方块的函数,那我们就在显示之前判断是否是雷,是的话就直接return不进行下面的判断,后面改进了,是雷的话可以自己插旗。
然后先在o0o函数中console出d31数组,因为我发现大多数的函数都在判断/获取 d31 数组的值,然后也找到了一个start函数调用了_123函数就是布盘,确定了d31就是扫雷盘的二维数组,打印出来,每一项就是每一行,一行有几个格子每一项就有几项数据[0,0,1,0] --- 通过几次 点击之类的 打印,发现
第一个数字,0:未揭开,1:已揭开,2:标记
第二个数字:0:不是雷,1:雷
第三个数字:九宫格内雷的数量
第四个不清楚 够用了不去猜
最后在o0o函数最上面添加这代码 就完成了,
先判断点的是否是雷,是的话,在数组内把状态改成标记,然后再把旗子插上去 就完成了
不可能点到雷,点到了自动标记,再也不用心惊胆战辣!!! 也可以装逼用,框框点就完了,别人没算完你就框框点鼠标给雷标出来了
if(d31[j][h][1]){
d31[j][h][0]=2
ctx.drawImage(gfs[1], h * 25, j * 25);
return ;
}
f12,然后选替换,搜函数名加代码然后保存刷新页面就行了
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|