关于棋谱搜索程序的问题

beyond702 2010-05-28 12:02:23
最近要做一个围棋棋谱匹配的搜索程序,就是给一些sgf格式的棋谱,根据用户棋盘的输入从这些棋谱中找到特征相符合的棋谱,不仅要考虑棋子的位置,还要考虑走棋的顺序。
sgf格式的文件打开以后是这个样子的
;B[qd];W[dc];B[cp];W[op];B[ep];W[gq];B[qp];W[qo];B[ro];W[po];B[qn];W[rn];B[rm];W[rp]
;B[sn];W[qq];B[iq];W[go];B[lq];W[oc];B[pe];W[pm];B[qk];W[lc];B[de];W[ce];B[cf];W[cd]
;B[df];W[ed];B[cj];W[mr];B[mq];W[lr];B[nq];W[kq];B[kp];W[jq];B[jp];W[ir];B[jr];W[kr]
;B[hr];W[hq];B[is];W[ip];B[io];W[ir];B[no];W[pn];B[iq];W[hp];B[nr];W[ir];B[nm];W[gr]
;B[ok];W[qm];B[rl];W[rn];B[nd];W[nc];B[le];W[dk];B[dj];W[cn];B[en];W[ek];B[ck];W[dm]
;B[cl];W[em];B[fn];W[hm];B[eq];W[do];B[fp];W[hk];B[qn];W[mn];B[nn];W[rn];B[kc];W[od]

请问谁知道这些都代表什么意思啊,请指教!!谢谢。
...全文
140 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 beyond702 的回复:]
感谢解答,那有什么好的方法能够找到匹配的棋谱呢?只要下子的位置特征相似但是下子的顺序却不一定啊,用户可能第一个子下在某一个位置,有可能某个棋谱中在那个位置也有棋子,但是是最后下的,这样在文件中记录的顺序就不一样,很难找啊。
[/Quote]
这个就要看你的需求书是怎么写的了。什么叫“匹配的棋谱”?
根据我的理解,必须是下子顺序和下子位置完全一致才行。这样就很容易了,就从第一手开始依次比较,就像一个strcmp,有一个不一样的就不匹配。
baggio1984 2010-05-30
  • 打赏
  • 举报
回复
不懂 mark
beyond702 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 brookmill 的回复:]
引用 5 楼 beyond702 的回复:
我这里是棋盘里没有I那一列,所以是从[a,a]到[t,t]

哦,原来是这样。
我刚才就是简单的19、20这么数的,不好意思。
[/Quote]

感谢解答,那有什么好的方法能够找到匹配的棋谱呢?只要下子的位置特征相似但是下子的顺序却不一定啊,用户可能第一个子下在某一个位置,有可能某个棋谱中在那个位置也有棋子,但是是最后下的,这样在文件中记录的顺序就不一样,很难找啊。
brookmill 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 beyond702 的回复:]
我这里是棋盘里没有I那一列,所以是从[a,a]到[t,t]
[/Quote]
哦,原来是这样。
我刚才就是简单的19、20这么数的,不好意思。
brookmill 2010-05-28
  • 打赏
  • 举报
回复
棋子放下的先后顺序,就是文件里的次序
B[qd];W[dc];B[cp];
qd是第1手,dc是第2手,cp是第3手,……
beyond702 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
1楼弄错了,应该是[a,a]到[s,s]

;B[qd] ==> 黑方落子在 [16, 4], 这是个小目
W[dc]; ==> 白方落子在 [4, 3], 这也是个小目
[/Quote]


我这里是棋盘里没有I那一列,所以是从[a,a]到[t,t]
beyond702 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
1楼弄错了,应该是[a,a]到[s,s]

;B[qd] ==> 黑方落子在 [16, 4], 这是个小目
W[dc]; ==> 白方落子在 [4, 3], 这也是个小目
[/Quote]

哦,这样啊,谢谢了,那棋子放下的先后顺序在这个文件里也有体现吧?
19*19的话应该就是[a,a]到[t,t]吧?
brookmill 2010-05-28
  • 打赏
  • 举报
回复
1楼弄错了,应该是[a,a]到[s,s]

;B[qd] ==> 黑方落子在 [16, 4], 这是个小目
W[dc]; ==> 白方落子在 [4, 3], 这也是个小目
brookmill 2010-05-28
  • 打赏
  • 举报
回复
楼主装一个multigo之类的打谱软件,把sgf文件打开看看谱,再和文件对照一下就明白了
brookmill 2010-05-28
  • 打赏
  • 举报
回复
B -- black
W -- white
[qd]这些是坐标, 棋盘上19x19的点用[a,a]到[t,t]来表示
bill_cpen 2010-05-28
  • 打赏
  • 举报
回复
不懂啊。。。。现在时间比较紧张。。。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧