中国开发网: 论坛: 程序员情感CBD: 贴子 574823
haitao
棋谱欣赏(无论围棋还是象棋)时,提供一个滚动条,以便用户随时观看任何一步时的局面。但是,如果棋谱包含了分支走法,如何表达呢?
棋谱欣赏(无论围棋还是象棋)时,提供一个滚动条,以便用户随时观看任何一步时的局面。但是,如果棋谱包含了分支走法,如何表达呢?
首先想到的是,滚动条是不够用了,必须用Treeview!
但是,这样的棋谱有2类信息:顺序走子和某局面下的多种分支走法,如何分部表达呢?
想到2种表达模式:
模式1:
Init:state {$+$} 初始局面 {@ CMXSJSXMC _P_____P_ _________ B_B_B_B_B ...@} {!R!}/{!B!} {# 注释[\n]注释 #}
├1:xyxy {# 注释[\n]注释 #}
├2:xyxy {# 注释[\n]注释 #}
├3:xyxy {# 注释[\n]注释 #}
├4:xyxy {# 注释[\n]注释 #}
├5:xyxy {# 注释[\n]注释 #}
│├5-1:state # 分支之一 {$+$} {# 注释[\n]注释 #}
││├6:xyxy {# 注释[\n]注释 #}
││├7:xyxy {# 注释[\n]注释 #}
│││├7-1:state # 分支之一 {$+$} {# 注释[\n]注释 #}
││││├8:xyxy {# 注释[\n]注释 #}
││││├9:xyxy {# 注释[\n]注释 #}
││││├10:xyxy {# 注释[\n]注释 #}
││││├11:xyxy {# 注释[\n]注释 #}
││││└7-1:state # 分支结束 {$-$} {# 注释[\n]注释 #}
│││└7-2:state # 分支之一 {$+$} {# 注释[\n]注释 #}
│││ ├8:xyxy {# 注释[\n]注释 #}
│││ ├9:xyxy {# 注释[\n]注释 #}
│││ │├9-1:state # 分支之一 {$+$} {# 注释[\n]注释 #}
│││ ││├10:xyxy {# 注释[\n]注释 #}
│││ ││├11:xyxy {# 注释[\n]注释 #}
│││ ││└9-1:state # 分支结束 {$-$} {# 注释[\n]注释 #}
│││ │└9-2:state # 分支之一 {$+$} {# 注释[\n]注释 #}
│││ │ ├10:xyxy {# 注释[\n]注释 #}
│││ │ ├11:xyxy {# 注释[\n]注释 #}
│││ │ ├12:xyxy {# 注释[\n]注释 #}
│││ │ └9-2:state # 分支结束 {$-$} {# 注释[\n]注释 #}
│││ └7-2:state # 分支结束 {$-$} {# 注释[\n]注释 #}
││├8:xyxy {# 注释[\n]注释 #}
││└5-1:state # 分支结束 {$-$} {# 注释[\n]注释 #}
│├5-2:state # 分支之一 {$+$} {# 注释[\n]注释 #}
││├6:xyxy {# 注释[\n]注释 #}
││├7:xyxy {# 注释[\n]注释 #}
││└5-2:state # 分支结束 {$-$} {# 注释[\n]注释 #}
│└5-3:state # 分支之一 {$+$} {# 注释[\n]注释 #}
│ ├6:xyxy {# 注释[\n]注释 #}
│ ├7:xyxy {# 注释[\n]注释 #}
│ ├8:xyxy {# 注释[\n]注释 #}
│ ├9:xyxy {# 注释[\n]注释 #}
│ └5-3:state # 分支结束 {$-$} {# 注释[\n]注释 #}
├6:xyxy {# 注释[\n]注释 #}
├7:xyxy {# 注释[\n]注释 #}
├8:xyxy {# 注释[\n]注释 #}
├9:xyxy {# 注释[\n]注释 #}
├10:xyxy {# 注释[\n]注释 #}
└Init:结束 {$-$} {# 注释[\n]注释 #}
(“结束 {$-$}”节点好像可以不要)
它的缺点是,分支会把顺序走法挤到很远的下方(收缩产生分支的节点,倒是可以很容易隐藏那些分支)



模式2:
初始:局面,说明,对弈双方
└第1步
 └第2步
  └第3步
   └第4步
    ├第5步
    │└第6步
    │ └第7步
    │  └第8步
    │   └第9步
    │    └第10步
    │     └第11步
    │      └第12步
    ├如果走在a
    │├第5步
    ││└第6步
    ││ └第7步
    │└如果走在a
    │ └第6步
    │  └第7步
    ├如果走在b
    │└第5步
    │ └第6步
    │  ├第7步
    │  └如果走在a
    │   └第7步
    │    └第8步
    └如果走在c
     └第5步
      └第6步
       └第7步

它的缺点是,顺序走法会把分支挤到很远的下方(收缩产生分支的节点,倒是可以很容易隐藏那些后续的顺序走法)
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录