飞扬围棋

标题: 围棋软件 + 数据库 = ? [打印本页]

作者: AWater    时间: 2003-12-10 02:26
标题: 围棋软件 + 数据库 = ?
最近闲来把前段时间用dotnet写的一个打谱软件移植为native app(这个软件也曾经在飞扬论坛上发过,名叫SGFReader,不过功能相对简陋,没有引起大家足够的重视,呵呵),既然动手写了,就想顺便加上一个现在大多数打谱软件所缺少的一个功能---棋谱数据库,这个功能要大可大,要小可小,小则就是简单的把棋谱文件的分门别类,统一存储,以便于日后调用查找,大则可以实现一个基于棋谱数据库上的数据中心,可以为围棋教学,棋局分析,等等。。。提供后台支持。

现在整个移植过程已经完成了80%,UI基本可用,目前正在改良SGF Parser,数据库部分还没有开始动手coding,还在设想要怎么做,做成什么样,希望这里的朋友们提提意见,踊跃批评指正。

当然,这个软件是免费的,也打算等这个软件将来成熟一点,会考虑把它opensource,不过这个是后话了。[em09]































[此贴子已经被作者于2003-12-11 22:10:19编辑过]


作者: daigo    时间: 2003-12-10 09:57
支持。并送鲜花一朵。
作者: AWater    时间: 2003-12-11 02:10
贴一张开发中的画面,呵呵,算是立此存照吧。

请往后观看最新开发进度中的界面截图

[em08]




[此贴子已经被作者于2003-12-18 1:13:07编辑过]


作者: AWater    时间: 2003-12-11 21:47
唔,好像跑题了,那就继续贴贴开发进度和一些相关的内容吧。

俗话说,名不正,则言不顺。所以,第一步先给这个软件取个名字,打算叫做StoneBase,用意就是取打谱软件和集成了数据库功能的含义。如果时髦一点,应该还有一个codename吧,记得前段时间炒得火热的国产龙芯的小名叫作狗剩,呵呵,也是颇有中国特色的codename。

目前决定在第一个版本中实现的功能大致有如下一些:
1。多文档界面,可以同时打开多份棋谱,多个窗口,而无需同时多次运行程序。
2。读取棋谱,支持SGF/TOM/SINA的棋谱格式,甚至考虑制定一个独有的棋谱文件格式,SGF实在太。。。。。差。
3。支持自由研究,可以在打谱中途摆变化图。
4。数据库支持,目前先实现简单的,只是对棋谱的分类存储,以及快速检索。
5。制作棋谱功能,这个功能可能会慢慢完善。

然后再展望一下第二个版本,如果没有意外的话 :)
1。完善制作棋谱的功能。
2。提供基于数据库的数据支持能力,然后在此基础上实现一些增强的功能,比如围棋教学,定式学习,死活题,棋局分析之类的。。。这个似乎蛮遥远的。。。[em07]
3。实现IGS Client Interface。可以连接到 IGS 连线对局。
4。支持P2P之间的网络对局。

唔,先这样。。。好像很多都是幻想。。。[em08],希望有足够的空闲时间能够让我把这些都做出来,南无阿弥陀佛。。。




















[此贴子已经被作者于2003-12-11 21:56:17编辑过]


作者: AWater    时间: 2003-12-12 17:52
今天在做UI....,说起做UI,确实是一件极其繁琐的事情,且不说界面的美观与否,单单是界面功能的组织和划分也是大有学问,绝不是简简单单一个OK,一个Cancel或是胡乱堆砌一些菜单和按钮就可以解决的事情。所以就偷了懒,在菜单的组织和分类上借鉴了一下MultiGo的成果,这里先道一声谢了。[em08]


[此贴子已经被作者于2003-12-12 17:54:02编辑过]


作者: AWater    时间: 2003-12-13 17:51
看着点击数不断上升,提意见的朋友很少啊,呵呵。。。

门庭冷落车马稀,雕龙绘凤无人奇,
待到点睛一笔下,踏破门槛立满席。



[em07][em08]




[此贴子已经被作者于2003-12-13 18:00:42编辑过]


作者: prontjiang    时间: 2003-12-13 18:16
HOHO, 不客气。我也从WINMGT里那里学了很多。
作者: AWater    时间: 2003-12-13 22:05
以下是引用prontjiang在2003-12-13 18:16:49的发言:
HOHO, 不客气。我也从WINMGT里那里学了很多。


还是要谢的,呵呵。这两天浪费了很多时间在界面上,尤其是图标。。。郁闷
作者: prontjiang    时间: 2003-12-14 00:27
哦?这样的程序主要不就是在写界面吗?
作者: AWater    时间: 2003-12-14 01:56
以下是引用prontjiang在2003-12-14 0:27:42的发言:
哦?这样的程序主要不就是在写界面吗?


界面的比重比较大吧,而且是直接面对最终用户的,所以软件本身的亲和力与易用性也就比较重要了,不过确实也是很无趣的事情:菜单/工具条/图标。。。
作者: edward    时间: 2003-12-15 11:57
有进展告诉我,edward1966@vip.sina.com
先谢谢.
作者: AWater    时间: 2003-12-15 21:40
这两天进展缓慢,主要在到处寻找漂亮的图标。。。:)
作者: jmlv    时间: 2003-12-16 10:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: AWater    时间: 2003-12-17 00:53
打算等到成熟一点以后再考虑开源的事情,目标是建立一套可以通用的围棋UI组件,可以供后来的开发者重用,这样就不需要再每次都先去考虑如何绘制棋盘,界面等等繁琐的事务,而能够专心的把注意力放在内在的逻辑上,程序的架构上,已及如何实现一些新的功能上,如果能达到这个目的,那么开源的目的也就达到了


[此贴子已经被作者于2003-12-17 0:54:53编辑过]


作者: AWater    时间: 2003-12-18 01:11
最新的开发界面截图,请大家观赏:

在帖子中图片被自动缩小并且裁减了,所以看起来不全同时会有失真,请点击图片,观看原始图。















[此贴子已经被作者于2003-12-30 5:20:54编辑过]


作者: daigo    时间: 2003-12-18 08:45
关于棋谱树的问题这里再说一下。
如果翻前面的帖子,可以发现有人反应棋谱树无用,甚至还说了些诋毁棋谱树的话(我不想重复了),认为只要在出现变化的地方给个提示让用户进行选择就可以了(象Jago和围棋道场)。我只能说,这些人大概很少进行棋谱编辑工作。Jago和围棋道场那样打谱时是比较方便,但你去编辑一个有大量解说和变化图的棋谱试试。前后找个几次,很快就头昏了,远不如旁边有棵棋谱树对照来的脉络清楚。
作者: 阿扬    时间: 2003-12-18 22:18
还是树形状的比较方便。
作者: Fish    时间: 2003-12-18 23:30
daigo 说的狠有道理,
例如用没有树状结构的打谱软件去欣赏飞扬网上的马晓春的笑傲纹枰或者陈祖德的当湖十局,就能明显看出树状分支的好处来
作者: AWater    时间: 2003-12-18 23:59
多谢daigo的提醒,我打算这样,把两种不同的风格兼包并蓄一下,在程序中提供两种不同的打谱模式,一种叫做易用型,一种叫做专家型,前者则模仿那种不需要显示棋谱树,只是在遇到有变化图的时候,提醒一下用户,做一个选择,第二种就是全功能的,显示棋谱树,并且和打谱的进程同步,大家觉得如何?

另外,对于SGF规范所描述的棋谱记录树的结构来看,这颗树的深度是层层缩进的,当显示一个包含较多变化图的棋谱时,到最后往往会错综复杂,看起来不胜其烦,恐怕这就是很多人对棋谱树颇有微词的原因吧,在这一点上,我个人还是比较欣赏围棋助手的改良性做法,它调整了SGF棋谱树的排列规则,一张棋谱中正常的落子都显示为同一级别的兄弟结点,而变化图则作为子节点挂在相关的外层节点上,正常的看,这样改良后,一般一颗棋谱树的深度只会有2-3层,比起现在动辄十几层,几十层的深度来说,从感观上就清晰了很多,使用上应该也会比较符合人们正常的思维习惯。所以,在这一点上,打算向围棋助手学习。

就此两点,请教大家的意见,同时向围棋助手做出的探索性工作表示感谢 。:)










[此贴子已经被作者于2003-12-19 3:23:51编辑过]


作者: daigo    时间: 2003-12-19 08:42
第一点很好。windows自带的计算器不就是个现成的例子吗?
第二点有些麻烦。如果是输入一盘带解说变化的对局,围棋助手那个样子很方便;但要是输入技术讲座、定式辞典之类的东西,还是老样子好,因为它们不存在一条主线。两者怎么统一,是个问题。
作者: HuXiaoQi    时间: 2003-12-19 13:52
以下是引用AWater在2003-12-18 23:59:57的发言:

另外,对于SGF规范所描述的棋谱记录树的结构来看,这颗树的深度是层层缩进的,当显示一个包含较多变化图的棋谱时,到最后往往会错综复杂,看起来不胜其烦,恐怕这就是很多人对棋谱树颇有微词的原因吧,在这一点上,我个人还是比较欣赏围棋助手的改良性做法,它调整了SGF棋谱树的排列规则,一张棋谱中正常的落子都显示为同一级别的兄弟结点,而变化图则作为子节点挂在相关的外层节点上,正常的看,这样改良后,一般一颗棋谱树的深度只会有2-3层,比起现在动辄十几层,几十层的深度来说,从感观上就清晰了很多,使用上应该也会比较符合人们正常的思维习惯。所以,在这一点上,打算向围棋助手学习。

就此两点,请教大家的意见,同时向围棋助手做出的探索性工作表示感谢 。:)










[此贴子已经被作者于2003-12-19 3:23:51编辑过]


感谢AWater朋友对围棋助手提出的许多建议,在新的版本8.00以后的版本中,围棋助手保存的SGF文件已经完全符合SGF文件规范了。
应当感谢所有诚意建议的朋友。
作者: AWater    时间: 2003-12-19 23:47
呵呵,HuXiaoQi 太客气了,只要是好东西,大家都会支持的,不过我这里做免费的围棋软件,难免有坏你的生意之嫌,还请多多包涵了 :)




[此贴子已经被作者于2003-12-19 23:47:35编辑过]


作者: AWater    时间: 2003-12-19 23:49
以下是引用daigo在2003-12-19 8:42:52的发言:
第二点有些麻烦。如果是输入一盘带解说变化的对局,围棋助手那个样子很方便;但要是输入技术讲座、定式辞典之类的东西,还是老样子好,因为它们不存在一条主线。两者怎么统一,是个问题。


晤,还是daigo想的缜密,那么说这个棋谱树的显示还真是个棘手的问题哩。。。我再考虑考虑,能不能有别的变通的办法。。。
作者: wwwlzh    时间: 2003-12-20 08:03
不过HuXiaoQi的助手8.0版不对他的*.goa转换成*,sgf进行批量转换,这倒是缺点之一!8.0加了这个功能,但不好使!
在运行环境上,处理器:Pentium166以上处理器,内存:32M以上;我做过测试!巨慢!
在处理器:Pentium500以下的机器上,延迟的厉害,棋谱库功能基本上就不能用了!


[此贴子已经被作者于2003-12-20 8:10:36编辑过]


作者: HuXiaoQi    时间: 2003-12-20 08:11
以下是引用AWater在2003-12-19 23:47:07的发言:
呵呵,HuXiaoQi 太客气了,只要是好东西,大家都会支持的,不过我这里做免费的围棋软件,难免有坏你的生意之嫌,还请多多包涵了 :)






围棋助手不完全是收费,看看主页就知道了,也可以免费获得注册,作者最终的目的是使软件和网站得到更多的发展空间。现在是收费用户和免费的用户的数量差不多,不同的棋友需求也会不同。






[此贴子已经被作者于2003-12-20 8:26:28编辑过]


作者: HuXiaoQi    时间: 2003-12-20 08:25
以下是引用wwwlzh在2003-12-20 8:03:35的发言:
不过HuXiaoQi的助手8.0版不对他的*.goa转换成*,sgf进行批量转换,这倒是缺点之一!8.0加了这个功能,但不好使!
在运行环境上,处理器:Pentium166以上处理器,内存:32M以上;我做过测试!巨慢!
在处理器:Pentium500以下的机器上,延迟的厉害,棋谱库功能基本上就不能用了!


[此贴子已经被作者于2003-12-20 8:10:36编辑过]

使用gao后缀名的文件是为了避免关于SGF格式引起的争议,不支持goa转换是因为SGF格式可能不能完全支持gao。慢的问题将会解决解决。
“Pentium500以下的机器上,延迟的厉害,棋谱库功能基本上就不能用了”好象与事实不符,加入时慢,是因为要建立索引文件,一旦加入后,从里面调出棋谱都是对索引操作,在我的PII266 128M 表现是不错的。
作者: wwwlzh    时间: 2003-12-20 08:50
应该是我没说明白!
是赛扬500以下的机器,家里的是赛扬333(从买286开始到赛扬333,我就发誓每5年买一个新的电脑,永不升级了,从286到赛扬333,两万多元没了:))
赛扬333   64M:能建立索引文件,一旦加入后,从里面调出棋谱都是对索引操作,但-----打完一个谱后再进行操作打谱是会遇到死循环的问题,参照助手的帮助,无“问题解答”中的原因,再试了一台赛扬333   32M  情况一样!
对Pentium166处理器,内存:32M的机器,能打谱,忘记了做索引操作!找机会会测试的!
作者: HuXiaoQi    时间: 2003-12-20 09:11
以下是引用wwwlzh在2003-12-20 8:50:14的发言:
应该是我没说明白!
是赛扬500以下的机器,家里的是赛扬333(从买286开始到赛扬333,我就发誓每5年买一个新的电脑,永不升级了,从286到赛扬333,两万多元没了:))
赛扬333   64M:能建立索引文件,一旦加入后,从里面调出棋谱都是对索引操作,但-----打完一个谱后再进行操作打谱是会遇到死循环的问题,参照助手的帮助,无“问题解答”中的原因,再试了一台赛扬333   32M  情况一样!
对Pentium166处理器,内存:32M的机器,能打谱,忘记了做索引操作!找机会会测试的!


我说的不是对*.igo文件的操作,而是当你建立一个*.igo文件后,再将它(*.igo)加入到棋谱库后(在右下侧棋谱库面板中单击右键可加入),读取的速度是非常快的。在我的P4中,读取一个35000的棋谱库用时20几秒。


[此贴子已经被作者于2003-12-20 9:12:49编辑过]


作者: AWater    时间: 2003-12-21 01:57
对于棋谱树的显示,依然没有比较好的方案。。。看来只能还是按照老样子了。

顺便定了一个里程碑,打算在过农历年前发布第一个测试版本,倒时要请诸位多多提意见。不过,能不能保证进度我还不能肯定,努力吧。。。
作者: AWater    时间: 2003-12-22 02:00
来谈论一个有点高深的话题。关于棋型的匹配,为什么要扯上这个,主要是我在设计数据库时,考虑数据库能够为将来的哪些应用提供数据支持,总不能只是为了存储数据而已吧。所以,就在想起了以前飞扬论坛上,有位棋友曾经提出的设想,他建议说,希望能够有一种软件,可以在棋谱数据库中找出和指定的棋型类似的棋局,比如大雪崩,中国流开局,等等。。。

粗粗一想,这个要求的难度非常高,也非常难以实现,而且就算勉强实现了,对计算机的运算能力的要求也非常高,不是奔腾一代或二代,只有几十兆的机器可以承受的了的。

但是,刚才在喝茶的时候,突然灵机一动,想到有一个变通的办法,并不一定要死板的只是做棋谱的分析,而是可以先把棋谱转化为黑白二值图,然后进行图像的模式匹配,在设定一个合理的阀值时,应该可以得到最优解。

但是,喝完茶了,整理了思路,细细想来,困难也还是不少,首先是匹配的问题,因为棋型是一个很活得东西,无论横也好,竖也好,黑也好,白也好,都可以是同一个棋型(或是变形),但是对于计算机而言,则是两回事,难不成要转个45度,90度,180度的分别各匹配一次?难道还要左右互换,再加上角度旋转?而且模式匹配的话,这个模版怎么定义呢?取的粒度太细不行,太粗也还是不行。。。而且这种做法太不优雅,甚至很笨拙,看来是行不通了。。。晤,虽然对于现代数字图像处理来说,进行黑白二值图的匹配应该是已经很成熟的技术了,但是在这里,似乎还是有着跨不过的鸿沟。。。






[此贴子已经被作者于2003-12-22 2:11:10编辑过]


作者: AWater    时间: 2003-12-23 03:30
写程序其实是一件很容易让人上瘾的事情,甚至比棋瘾还大,为什么这么说呢,因为这几天为了写这个程序,连下棋的时间都快没有了。。。:)

我现在常在在TOM下棋,总是在1-2级间晃来晃去,有时一不小心还会被打倒3级,然后再慢慢打上来,哎,怎么说我也有业一强的水平啊,只能说TOM的棋手都很强悍,而且常有高手冒充菜鸟。。。

后来发现TOM的id都很有意思,尤其是最近的隐忍XXX人系列,呵呵,非常的搞笑。。。
作者: AWater    时间: 2003-12-30 05:12
最近忙着低头写程序,结果在TOM上下棋几天连输,可怜我又掉入3级了。。。

下面来发布最新的开发中的画面,请大家观赏,同时请多提意见。





[此贴子已经被作者于2003-12-30 5:19:59编辑过]


作者: TAYLORHERO    时间: 2003-12-30 13:29
AWater兄半夜都在寫程式,實在佩服的緊,如果您的圍棋軟體可以兼容BIGO,KOMBILO,MASTERGO軟體的索引模式就非常好了,希望可以作成,屆時我保證像買圍棋助手軟體一樣買正版,希望可以早日成為你的客戶.
作者: AWater    时间: 2003-12-30 14:29
以下是引用TAYLORHERO在2003-12-30 13:29:44的发言:
AWater兄半夜都在寫程式,實在佩服的緊,如果您的圍棋軟體可以兼容BIGO,KOMBILO,MASTERGO軟體的索引模式就非常好了,希望可以作成,屆時我保證像買圍棋助手軟體一樣買正版,希望可以早日成為你的客戶.


在下自從上了程式師這條賊船後,一直以來都是日夜顛倒,倒讓您見笑了。 :)
至於您提出的建議,我會考慮,但是有兩個考量取向,因為功能的實現總是有急有緩,有輕有重的,第一是您所說的幾種軟體的流行程度如何,相容它們的檔格式是否是必須的,第二就是單單從技術上來說了,不知道這幾種軟體所採用的檔格式是怎麼樣的,如果都是私有的格式的話,想要做到良好的相容是比較困難的,而且要花很大的氣力。由於我對於您所說的這幾種軟體沒有接觸過,所以無法做出判斷,如果您願意,可以mail一些檔給我,讓我參考一下,anyway,要謝謝您的建議。

最後要說的一點就是,我正在開發的這個軟體(stonebase)是免費軟體,不收錢的,完全只是興趣所至,寫一個程式來娛樂一下,方便自己也方便他人,如果您覺得好用,對您有幫助的話,這個軟體的目的就已經達到了。:)



[此贴子已经被作者于2003-12-30 14:32:08编辑过]


作者: TAYLORHERO    时间: 2003-12-30 16:23
您好,因為本人不是學資訊專業的所以可提供的意見有限,下面幾個軟體的地址可以去粗取精自己查,可惜他們大部分的文檔都是專有模式的,只可供參考.國內的軟體中較為著名的有奕通,主要是佈局索引功能可以讓書房棋手大感興趣,如果可以加上死活判斷與中盤推理就絕對完美了.

MASTER GO : http://www.mastergo.com/download.asp

kombilo: http://www.g0ertz.de/kombilo/download.html

BIGO : http://bigo.ufgo.org/chinese/index.htm

其中的BIGO包含了110萬的棋譜數據庫,可算是囊括古今了,當然收費很高。MASTER GO和網站可下載文檔多,這個軟KOMBILO在日本較為流行,BIGO台灣也知道,但是具體的流行程度和數據不詳,KOMBILO因為現在還是試用版免費階段,在國內也不少人追捧,你可以下載試試看。

另外,你說的免費可以商榷,我購買圍棋助手軟體主要是看他的參與感也很強,所以我想你如果可以再建立出一個圍棋棋譜BBS就會成為專業的圍棋技術網站,個人都可以再加上自己收集的資料,這種參與模式可以搞出一個社團,湊足100萬棋譜估計是沒問題的,既可自娛也可娛人,何樂不為。圍棋助手估計在台灣都該賣出百套了,想來是作者的共享和參與精神引起內外歡迎,所以你的軟體作如是觀應大有可為。

我也把這種思路看作一種雙贏的網路商業模式,相信這樣可以支撐一個小型服務器的運作沒問題,只可惜我不會編程式,只好略過不談。

有興趣可以聯繫:GL@MS1.GLOBEUNION.COM.CN
                      GL3456_SZB@21CN.NET

我是SINA四段,因為習慣問題沒有去過TOM,有機會切磋幾盤。

作者: AWater    时间: 2003-12-31 02:14
以下是引用TAYLORHERO在2003-12-30 16:23:23的发言:
您好

...

我是SINA四段,因為習慣問題沒有去過TOM,有機會切磋幾盤。


多謝TAYLORHERO提供的相關資料,我會參考一下的。StoneBase不日即將會發佈一個雛形階段的測試版本,到時還要請您多提寶貴意見。

對於您所說的商業運作模式,我覺得前途漫漫,很艱辛啊,畢竟圍棋是一項古老的東方智慧結晶,甚至可以說是一個小範圍的圈子,依靠這個來獲取商業利益,首先就犯了兵家大忌,選錯了對象吧,下棋的人口本來就不多,這其中需要用電腦的就更少了,那麼願意掏錢的恐怕就所剩無幾了,再綜合考慮其他的因素,我個人認為,圍棋軟體商業化要想上規模,基本上很難啊,就像您說的一樣,大概可以維護一個中小型網站是沒有問題,但是投入了那麼多精力和時間後,回報只有這些,我認為已經是完敗的局面了,更不提可能連這一步都做不到吧,所以我把圍棋軟體定位在免費的,自娛自樂的層面上,其實也是一種無奈的選擇吧。

有機會希望能夠和你手談幾局,可惜我棋力頗差,估計能被你讓上兩三子吧,呵呵。

作者: liuchao    时间: 2003-12-31 14:31
有没有一个自版本可以试用一下啊
作者: liuchao    时间: 2003-12-31 14:31
有没有一个自版本可以试用一下啊
作者: AWater    时间: 2004-1-2 01:29
会赶在元旦发布第一个alpha测试版,算是给棋友的新年礼物吧。

作者: hrmail    时间: 2004-8-20 18:01

作者: gowill    时间: 2004-8-30 00:35
请问楼主是用什么语言写的啊
作者: ylwq    时间: 2013-7-1 11:51
本帖最后由 ylwq 于 2013-7-1 11:52 编辑

楼主有心了,围棋类的数据库主要功能在棋谱分析的精度上。
对下一手有很好分析支持我想你就成功了一大半了。
还有就是形式判断功能。
加油
加油
加油


作者: 奔奔    时间: 2013-7-1 14:06





欢迎光临 飞扬围棋 (http://bbs.flygo.net/bbs/) Powered by Discuz! X3.2