西西河

主题:【文摘】【原创】网络围棋编程指南——计活子的围棋 -- 燕来

共:💬1 🌺1
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【文摘】【原创】网络围棋编程指南——计活子的围棋

网络围棋编程指南——计活子的围棋

人类的天性是厌恶烦琐哲学的。当人们懂得了“盘面无争”的概念后,就不必一人一手地走到底,一直下到“理想的最终局面”了。人们可在一千年前的中国古谱中看到,棋局在盘面无争时可适时地休止,然后,通过“做棋”来使棋盘上呈现出理想的最终局面或与之等价的简易局面。

因此,一局棋应分为“争棋”与“做棋”两个阶段。从空枰开始至无争局面为第一阶段,叫做“争棋”。从无争局面至理想的最终局面或与之等价的简易局面为第二阶段,叫做“做棋”。做棋,其实质就是棋局以无争的方式继续进行并进行到底。做棋后,就使棋盘上呈现出理想的最终局面或与之等价的简易局面而终局。

为了突出重点,本文专讲做棋和胜负的计算。关于争棋的内容,请阅拙著《计活子围棋规则》(该文可在百度与谷歌收索到)。

1、协商休止

收完官子(包括单官),盘面无争后,对局者双方皆可预见到“理想的最终局面”(若一方一手继续走下去,实着不利可虚着,一直走到底的话,棋盘上所呈现的那个局面),并确信它必定会出现,不会再有任何影响胜负的变数。进而双方皆认识到,若继续一方一手地下的话已无争棋的意义,不过是徒劳无功下废棋浪费时间而已。这时,若双方一致同意结束争棋,可经双方确认来使棋局休止。

双方确认棋局休止时,先由轮下子的甲方点击“提议休止”的窗口,点击后弹出对话框,有“同意”与“拒绝”两个选项,再由乙方做出选择。若乙方点击“同意”,则宣告棋局休止。若乙方点击“拒绝”,则棋局应继续进行。继续时,由程序自动将甲方“提议休止”之点击替换为一手虚着,而后便轮到乙方下子。此后,一方一手地继续。

图一:无争局面

7┌●┬●●○┐

6├●●●○┼○

5├┼●○○○○ ●-争棋过程中白方提取黑子1枚

4●●●●○●○ ○-争棋过程中黑方提取白子1枚

3○○○●●●● 黑方有死子1枚,在(C,2)处

2○┼●○○●●

1└○○○○○●

_abcdefg

说明:

现行各种规则都没有搞清终局的概念,因而将休止误认为终局。这个误解是十分有害的,必须予以消除。

2、清理死子

协商休止后,由双方确认各自的死子,确认后,若双方无歧见,则由程序自动提走死子。

(现有的程序已较好地解决了这个问题,不必多说了。)

图二:清理死子后的局面

7┌●┬●●○┐

6├●●●○┼○

5├┼●○○○○

4●●●●○●○ 提走了(C,2)处那一枚黑方的死子

3○○○●●●●

2○┼┼○○●●

1└○○○○○●

_abcdefg

3、实战解决一

若对局者双方在确认棋子的死活时发生分歧,以实战解决之。

若出现分歧,则恢复到双方确认休止时的局面,继续争棋,以实战来解决分歧。

4、保留气点

清理完死子后,要保留活棋所必须的气点(基本眼位与公气),由各方在各自所围空点中点出其基本眼位的位置,程序以符号#标明其位置。#形与汉字井相似,井,水之源,与“气”之意相合。公气处由黑方或白方点出其位置,程序以符号#标出其位置。

(可考虑以不同字体的符号来表示黑方、白方的气点与公共气点。例如,以黑体字符#表示黑方的气点,以细圆体字符#表示白方的气点,以宋体字符#表示公共气点。)

图三:保留气点后的局面

7﹟●﹟●●○﹟

6├●●●○﹟○

5├┼●○○○○

4●●●●○●○ #处是为棋子存活而保留的气点(基本眼位)

3○○○●●●●

2○┼﹟○○●●

1﹟○○○○○●

_abcdefg

“理想的最终局面”是一件艺术品(见下文图四)。由棋手自己动手选定各自眼位的位置,就是按照棋手们的意愿来完成这件艺术品。所以,保留气点也是一项具创造性的工作。

5、填入活子

各方围空中基本眼位除外的空点叫做各方的路点。在第4步之后,如图三,盘面上除黑子、白子和标为#的气点外,其余所有的空点皆为路点。在黑方的路点上填入黑子,在白方的路点上填入白子,这一步骤由程序自动完成。这个枯燥无聊的填子手续,电脑可在1秒内搞定。填满后,就使棋盘上呈现出对局者双方共同预见到的“理想的最终局面”。至此,做棋完毕,棋局为终止。

图四:理想的最终局面

7┌●┬●●○┐

6●●●●○┼○

5●●●○○○○ 填入活子后的局面叫做“理想的最终局面”

4●●●●○●○

3○○○●●●●

2○○┼○○●●

1└○○○○○●

﹢abcdefg

说明:

(1)“理想的最终局面”,就是对局者双方共同预见到的那个一定会出现的最终局面——而它正是协商休止的前提条件。因此,终局时在棋盘上将其呈现出来,是有意义的也是必要的。现行中日韩各种规则,都没有搞清终局问题,误将休止当成了终止,从未使盘面呈现出“理想的最终局面”,致使每一盘棋在初学者看来都像是没有下完。应氏规则之填满计点局面,不留气点而填满,把活棋都填死了。

(2)计活子规则实事求是地将一局围棋分为争棋与做棋两个阶段,争棋结束,棋局为休止;做棋完毕,棋局为终止——这便是计活子围棋规则关于终局的理论。

清理死子、保留气点与填入活子都是做棋的手续。

6、实战解决二

若对局者双方在确认气点时发生分歧,以实战解决之。

若出现分歧,则前进到电脑按双方对各自气点的确认自动填入活子后的局面(叫做“有争议的理想最终局面”),以实战来解决分歧。

计活子规则以实战解决为根基,表明了它的优秀性。反之,日本规则不能实战解决,是它致命的缺陷。

说明:

网友十二木叶给出了两个双活图,在对局者双方确认气点时,会因一方少算一个眼位而发生分歧。正是十二木叶网友的指教,促成我写下了这一条。

7、计算胜负

(1)在“理想的最终局面”上,计算各方活子的数量(惟子是子,气点非子),活子较多的一方为胜方。

本例(见图四),黑方有活子22枚,白方有活子21枚,黑方多1子胜。

(2)在清理完死子,保留了气点后的局面上,将各方的子与路合并计算(子路皆子,气点非子),就得到各方的活子数量,活子较多的一方为胜方。

本例(见图三),黑方有19个局子(存在于盘面上的子),3个路子,共22个活子;白方有20个局子,1个路子,共21个活子,黑方多1子胜。

(在贴子的棋局中,从先下子的黑方子数中减去贴子数,再同白方子数作比较,子多的一方为胜方。)

说明:

按第(2)种计算胜负的方法,可以省略填入活子这个步骤。

计活子程序中填入活子这个枯燥无聊的手续,电脑可在1秒内搞定。填满后,就使棋盘上呈现出对局者双方共同预见到的“理想的最终局面”——此即唐代以前的“两溢之棋”。在这里,我们惊喜地看到电脑为围棋的返朴归真给予了大力的邦助。让我们感谢人类科技的进步,感谢伟大的信息时代!热爱祖国真正优秀围棋的朋友们,让我们一齐努力,为计活子的围棋添增了一双强健的翅膀,让它在互联网的广阔天地自由地飞翔!

请阅《弈诀》(计活子围棋规则128字歌诀版),计活子规则在电脑及网络中的实现尽在其中矣。

上面是正文。写完正文后,同网友们讨论时,受益良多,现将进一步思考后所想到的,写在下面。

补文

1、计活子规则的编程是否可以可以省略清理死子的步骤?

保留气点后,聪明到一定程度的电脑便会自动找到死棋并提走它们。

由黑体#(黑方的基本眼位)出发,凡经由空点或黑子可抵达的某些黑子,便是黑方的活子;由细圆体#(白方的基本眼位)出发,凡经由空点或白子可抵达的某些白子,便是白方的活子;由宋体#(公共气点)出发,凡经由黑子可抵达的某些黑子是黑方的活子;凡经由白子可抵达的某些白子是白方的活子。上述活子以外的黑子与白子,便是死子。简单说就是,各方在各自独立活棋的围空中确定其基本眼位的位置后,也就确认了盘内黑白棋子的死活。

若清理死子之步骤可以由电脑自动完成,对局者便可不必亲自动手去清点各自的死棋了。

程序自动清除死子的另一个思路是:某些黑子经由空点或黑子可抵达表示黑方眼位的黑体#或表示公气的宋体#,这些符号#共有2个时,这些黑子便是活子;某些白子经由空点或白子可抵达表示白方眼位的细圆体#或表示公气的宋体#,这些符号#共有2个时,这些白子便是活子。 若黑白棋子可抵达的符号#少于2个时,它们便是死子(每块棋要有两口不会被消灭的气才能活在棋盘上)。 但有个特殊情况(贝濑尊明双活图)需要考虑。

2、计活子规则的编程是否可以可以省略保留气点的步骤?

Tom棋友论坛的网友anything74告诉我,“在协商认定死活后,以电脑目前的AI水平完全可以给活棋找到基本眼位,不需人工干预”。这真是个好消息!

鸣谢

向参与讨论的网友们致谢!特别要提到的是十二木叶和anything74两位。十二木叶给出的两个双活图促使我增写了实战解决二——这是必不可少的啊!

弈诀(计活子围棋规则128字歌诀版)

空枰开局,白先黑后。轮番下子,手分虚实。

子赖气存,气尽提取。禁止倒退,变化无穷。

一盘围棋,两个阶段,争棋之后,做棋勿忘。

保留眼位,填满计算。活子多胜,正本归真。

中国围棋,源远流长。数子方法,演变再三。

子路皆子,眼为恒气;子多为胜,准则惟一。

令路相等,局子多胜;置局子停,路多为赢;

设虚子均,只数一方。赞我先贤,智慧结晶。

(写于1993年,2000年起在多个围棋论坛发表)

请进入下面的地址,阅览与本文内容相关的系列文章:

燕来围棋文集(古风围棋文化网)

http://www.gf99.cn/wq.asp

燕来围棋文集(中国围棋网)

http://blog.weiqi.cn/index.php/130/action_spacelist_type_blog.html

围棋大革命(TOM棋圣道场)

http://blog.tom.com/blog/index.php?username=yanlai_zhang

燕来围棋文集(西西河中文网)

http://www.cchere.net/user/%D1%E0%C0%B4

燕来围棋文集(网易的博客)

http://blog.163.com/yanlai_zhang

燕来围棋文集(搜狐网)

http://89yanlai.blog.sohu.com

燕来围棋文集(新浪网)

http://blog.sina.com.cn/u/1052466433

按地址进入后,每篇文章都给了链接。

.

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河