一、分析

分析棋盘结构,猜测棋盘的数据是一个二维数组,棋盘是一个9*10或者是一个10*9的数组,先朝这个方向去尝试分析

程序内部可能是定义了一个这样的二位数组char[10][9]或者char[9][10]

也可能是int[10][9]或者int[9][10],还有可能是一个结构体的数组,腾迅开发人员具体用什么类型我们无从得知只能通过不断去尝试,试错来分析。

char   chessArray[10][9];

int    chessArray[10][9]

Chess  chessArray[10][9]

继续猜测分析:二维数组的每个元素是描述一个棋子的,是什么颜色什么棋,总共有32个棋子,猜测描述这些的棋子的属性用255种足可以描述完毕。

例如:红车是1,红马是2,红象是3等。

`

二、试错

通过CheatEngine工具,可以扫描进程的内存数据,不断调整棋子的位置,找到棋盘的大概位置

加载QQ象棋进程:如下图所示。

新扫描类型选择“值介于...两者之间”,数值为0到255之间,数值类型先选择4字节,点击首次扫描。

初次扫描,满足条件的内存有500多万条,如下图

修改扫描类型:为变动的数值,我们尝试来回重复移动一个棋子,每次搜索都搜索变动的数值,这样就可以迅速过滤掉大量的数据。

本例中是尝试车1进1,搜索一次,

车一退一搜索一次。

多次之后最后过滤到少量内存如下图

这三个地址相隔比较近,可以打开一起查看,

选择其中一个绿色地址打开继续分析,如下图:

将界面最大化后,每当我们移动棋子时,我们可以观察到,界面上面有颜色闪动变化,如下图所示,我们可以推断这些变化就是棋子的变化

不断地移动棋子,可以推算出每个棋子的值,而且可以算出棋盘的数组范围

QQ新中国象棋棋盘基址--寻找过程相关推荐

  1. QQ新中国象棋棋盘基址--结果

    操作系统:win7 工具:cheat engine6.7 执红棋: 00 00 00 00 将 01 00 00 00 黑士 02 00 00 00 黑士 03 00 00 00 黑象 04 00 0 ...

  2. matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程

    本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法. 背景技术: 数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人 ...

  3. 用turtle画中国象棋棋盘

    刚刚学习了<Python入门教程(一)--Python语言基础视频课程>(http://edu.51cto.com/course/12194.html) 中间有道作业就是用turtle画中 ...

  4. JAVA中用程序绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...

  5. 中国象棋棋盘java_java绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...

  6. 如何用Python画一个中国象棋棋盘?

    今天试着画了一个中国象棋棋盘! #绘制象棋盘 import turtle      t=turtle.Pen() t.speed(100) def angle(x,y):     t.penup() ...

  7. 中国象棋棋盘java_Java中国象棋博弈程序探秘[2]——棋盘的表示

    棋盘的表示 转载请保留作者信息: 作者:88250 MSN & Gmail & QQ:DL88250@gmail.com 在象棋博弈程序中,首先我们要确定下棋盘-棋子的数据结构描述. ...

  8. 马踏中国象棋棋盘的贪心算法

    今天上午在网上看到了一篇介绍马踏棋盘的贪心算法的文章,就想照着把它实现.可是写到一半,发现原文好像是国际象棋的棋盘.对国际象棋的规则一窍不通,所以就硬着头皮按中国象棋的规则来写.还真的写出来了. [问 ...

  9. 中国象棋棋盘c语言编程,中国象棋 C语言编程.ppt

    中国象棋 C语言编程 双人对弈中国象棋 程序所负责内容介绍 计算机生成红黑双方以及棋盘. 各个棋子的移动. 当危险时显示被"将军". 分支思路 1.棋盘棋子的制作与输出 棋盘 走子 ...

最新文章

  1. 11月百度面试题(社招)
  2. (一)html5中的新增元素和废除元素
  3. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ActiveXForm运行容器...
  4. mjpeg解码到rgb
  5. 启动u盘自动运行服务器,WinPE网启服务器自动配置程序
  6. php基础01~命名、传值问题
  7. linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
  8. 教你制作自己的linux
  9. LR:Code-29723 Error: Failed to deliver a p2p message from parent to child process, reason。。。
  10. ChengDu University Mental Health Test 需求分析文档
  11. std::tuple 和 std::tie 的用法简介
  12. smarty 模板不能正常加载css,js的问题
  13. 服务器vga转hdmi显示器不亮,HDMI转VGA后显示器不亮怎么办?
  14. 国美云运维自动化实践
  15. 一站式解决网站死链问题
  16. 中国第一上网人-钱天白先生
  17. 精选《英雄联盟》皮城女警凯特琳的Cosplay欣赏
  18. 数字图像处理实验03——图像几何变换
  19. 互联网晚报 | 7月17日 星期日 | iPhone 14量产在即;首款国产科学计算软件研发成功;上半年广东人均收入2.47万元...
  20. 年销近4亿只粽子,五芳斋冲刺“粽子第一股”,粽子一哥的月饼香吗?

热门文章

  1. 实现淘宝订单(比如订单生成、未支付的订单等等)自定义view的实现
  2. java基础-接口与实现
  3. 微服务架构设计基础之立方体模型
  4. 2-STM32+ESP8266连接onenet并上传数据(HTTP)
  5. 雅百特拟对外投资加码光伏主业
  6. 微信发不了照片上微信打印机怎么办
  7. php利用wsh突破函数禁用执行命令(安全模式同理)
  8. 此服务器不支持该安装程序,macOS 提示“不能安装该软件,因为当前无法从软件更新服务器获得” 解决方法...
  9. 各大网站前端web服务器汇总-nginx居首
  10. 移动开发测试工具——Bugtags的集成