qq象棋棋谱格式详解及其解析.doc_第1页
qq象棋棋谱格式详解及其解析.doc_第2页
qq象棋棋谱格式详解及其解析.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

qq象棋棋谱格式详解及其解析用qq游戏大厅里带的那个象棋游戏看起来很不爽,而且它导出的棋谱是左右颠倒的。以下是用记事本打开qq象棋棋谱文件经过一番观察后得出的结论:下面是一份完整的che格式的文件:1 62 21 32 1 0 1 2 2 0 1 0 10 32 0 7 7 7 4 0 2 0 26 32 1 2 7 2 5 0 3 0 6 32 0 9 7 7 6 0 4 0 17 32 1 0 3 1 4 0 5 0 1 32 0 9 3 8 4 0 6 0 30 32 1 3 6 4 6 0 7 0 8 32 0 9 8 9 7 0 8 0 22 32 1 0 7 2 6 0 9 0 5 32 0 9 1 7 2 0 10 0 22 32 1 2 6 4 5 0 11 0 13 32 0 6 4 5 4 0 12 0 28 32 1 3 2 4 2 0 13 0 9 32 0 7 1 7 0 0 14 0 25 32 1 2 1 6 1 0 15 0 8 32 0 9 7 5 7 0 16 0 22 32 1 4 5 5 3 0 17 0 5 32 0 7 2 6 4 0 18 0 25 32 1 6 1 6 4 0 19 0 6 32 0 7 6 6 4 0 20 0 22 32 1 5 3 7 4 0 21 0 3 32 0 9 2 7 4 0 22 0 23 32 1 0 0 0 1 0 23 0 14 32 0 6 6 5 6 0 24 0 21 32 1 2 2 4 3 0 25 0 6 32 0 6 4 7 6 0 26 0 30 32 1 4 6 5 6 0 27 0 8 32 0 5 7 5 6 0 28 0 19 32 1 0 2 2 4 0 29 0 9 32 0 7 0 3 0 0 30 0 21 32 1 4 3 6 2 0 31 0 9 32 0 3 0 3 2 0 32 0 21 32 1 6 2 4 3 0 33 0 7 32 0 9 0 9 3 0 34 0 23 32 1 0 1 0 3 0 35 0 8 32 0 5 6 3 6 0 36 0 24 32 1 0 8 0 7 0 37 0 8 32 0 3 6 3 4 0 38 0 24 32 1 0 7 7 7 0 39 0 8 32 0 3 4 3 6 0 40 0 26 32 1 2 5 4 5 0 41 0 13 32 0 5 4 4 4 0 42 0 26 32 1 4 5 4 6 0 43 0 13 32 0 4 4 4 3 0 44 0 24 32 1 7 7 7 6 0 45 0 8 32 0 3 6 3 5 0 46 0 28 32 1 4 2 5 2 0 47 0 9 32 0 3 2 3 4 0 48 0 28 32 1 5 2 6 2 0 49 0 13 32 0 4 3 3 3 0 50 0 26 32 1 4 6 4 4 0 51 0 13 32 0 3 3 2 3 0 52 0 23 32 1 0 3 0 1 0 53 0 8 32 0 3 5 4 5 0 54 0 23 32 1 0 1 4 1 0 55 0 13 32 0 2 3 1 3 0 56 0 26 32 1 4 4 4 3 0 57 0 8 32 0 4 5 4 3 0 58 0 23 32 1 4 1 4 3 0 59 0 7 32 0 9 3 4 3 0 60 0 17 32 1 1 4 2 3 0 61 0 9 32 0 3 4 0 4 0 62 0 把这些数据保存到文本文件中再把后缀名改为che就可以用qq象棋程序打开。其中第一个1无意义,第二个数字62表示棋谱总共有多少步数。接下来可以发现32出现多次,而且间隔一都是10。所以从文件的第三个数字21开始每10个数字一组分组,然后和记录下来的棋谱相比,有以下规律:21 32 1 0 1 2 2 0 1 010 32 0 7 7 7 4 0 2 0这是前两组。每组的第一个数表示是哪个棋子,如21表示马,10表示炮。经过与记录下的棋谱对比后发现:若是黑方走子,则:0(将);1,2(士);3,4(象);5,6(马);7,8(车);9,10(炮);11,12,13,14,15(卒)。若是红方走子,则:16(帅);17,18(士);19,20(相);21,22(马);23,24(车);25,26(炮);27,28,29,30,21(兵)。每组的第二个数字不变,总为32。每组第三个数字表示此步走子为红方还是黑方,1代表红方,0代表黑方。每组第四,五,六,七个数字表示源位置和目标位置的坐标。每组第八个数字总是0。每组第九个数字表示是棋谱中的第几步走子。第十个数字也总是为0。于是,根据以上分析,可得出qq棋谱文件格式的数据结构:#define QQRED 1#define QQBLACK 0typedef struct tagQQFileHeader . int id; / 一个整数,无意义 int totalMove; / 棋谱的总步数 QQFILEHEADER;typedef struct tagQQMoveCommand . int chessManName; int reserved; / 值为32 int redBlack; / 1 表示红方,0 表示黑方 int xSrc; int ySrc; int xDst; int yDst; int reserved2; / 值为0 int order; / 处于总棋谱中的第几步 int reserved3; / 值为0 QQMOVECOMMAND;以下解析qq棋谱的程序便轻而易举。上述数据实际上描述的棋谱为:马八进七 炮平 炮二平四 马进 土六进五 土进 兵三进一 车平 马二进三 马进 马三进四 卒进 兵七进一 炮平 炮八进四 车进 马四进六 马进 炮八平五 马进 马六进五 象进 车九平八 卒进 马七进六 马退 兵三进一 车平 相七进五 炮进 马六进七 炮平 马七退六 车平 车八平六 车进 车一平二 车平 车二进七 车平 炮四进二 卒进 炮四平三 卒平 车二平三 车平 兵七进一 炮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论