我的围棋狂想(二)

原创 2004年08月29日 11:58:00

我的围棋狂想(二)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

??????? 让我们再从走法上改造一下围棋。我的一个想法是,如果每方可以连走两步,会如何?这又引申出一个问题,每方连走的两步是分“先后”的,还是“同时”的?其含义就是,如果分先后,那一方的第二步就可以走在第一步提子之后的空白点,否则就不可以。我发现,这两种不同的前提下,会发展出两种非常不同的围棋。

??????? 我们先看看,如果两步棋是分先后落子的,情况会如何。首先,死活方面,每块棋仍旧是两眼活棋,因为根据我们的前提,你还是不能朝两个眼里同时落子。但一些常见形状的死活还是变了,比如直四就不活了,直五才活棋。方四原先补不活,但现在补两手就活了。板六也不活,总之,原先对方有劫材的地方,你现在就需要补棋

对打劫的影响也很大,因为每方连走两手,所以只要任何一方愿意,他都可以立即消劫。当然,这里还要明确一下,打劫的基本原则是“禁止全局同形再现”,所以,下面这种情况:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />?

轮白走,白可以连提两子,但接下来黑棋不能立即连提两子,只能提一个,另一步得找劫材,这样才不会导致“同形再现”。或者黑棋可以在其他地方连走两子,如果白也必须应两手,那黑棋就可以全部提回,这就是这种规则下的打劫。

类似的,三劫循环不再是无胜负,参见下图:

白连走两手就把黑吃尽了。但如下这种情况很有意思:

轮白走,如果白连提两劫,黑也必须连提两手;但白棋也可选择只提一手劫,另一手脱先他投。所以这里的结论是,如果双方坚持提劫,那是无胜负。但形势优势的一方不会这样选择,对双方来说,这里可以说是双活,但对方有无穷的劫材。这种形状应该属于通常的“摇橹劫”双活。

四劫的话,才可能出现循环无胜负,比如下图:

轮白走,白必须连提两劫,轮黑时,黑也处于被打吃状态,所以黑也必须连提两劫,由此构成了循环无胜负。

另外,连走两手对其他着法的影响也很大,你要避免出现自己会被一手“打吃”的形状,因为一手被“打吃“,也就意味着第二手被提走。所以征子也是不存在的。

以上讨论是基于每方的两步是“先后”走出的情况,下面看看“同时”走出的情况,粗看“先后”与“同时”没有什么大区别,可“同时”走两步会导出一个重要推论,三个“眼”才是活棋!因为你可以“同时”填入对手的两个眼,把棋提走。有了这个推论,我觉得这比前面的那种假设更好玩!

既然是三眼活棋,那整个围棋的形态就变了。死活方面,“直六”都不活,“直七”才活。“板六”、“板八”、甚至“板十”都不活(板十的变化复杂,也很有趣,请大家帮我验证,你要记住,两步棋是同时的,你不能下在前一步提掉对方后留下的空白处,这一点很重要)。

很遗憾的是我至今没能按照以上规则下一盘棋,所以也只能做这点浅尝辄止的讨论。总体感觉是这种棋做活比较难,双方吃子比较多。但是每方连走两步,也算一种平衡。

另外,我在上一篇文章里提到了三维棋盘,在这种棋盘里,一个子能有六口气。所以我感觉在这种棋盘上,每方只一步的话,是很无趣味的,因为你很难吃到子。让我们作个没什么依据的计算。普通棋盘上,每个子四口气,对方每回合可以紧一口气,所以每步可减少对方的气25%。每方连走两步,两个子连在一起最多六口气,对方每回合可以紧两口气,所以每步可减少对方的气33%,这个数值比普通情况要大,所以比较容易吃子。按同理计算,三维棋盘,每方一步,每回合减少气17%,每方两步,每回合减少气20%。所以,在这种棋盘上是不是连下两步才更为合理呢?当然这是无根据的类比,一切还应以实践检验为准。

我很希望谁能实践一下,谈谈你的新发现。

java围棋小游戏代码

java围棋小游戏代码
  • javaniuniu
  • javaniuniu
  • 2017年03月23日 12:17
  • 637

利用Java简单的实现围棋小游戏

双方一对一次下棋子,单机棋子可以悔棋,双击棋子可以去掉棋子 diam
  • u010214003
  • u010214003
  • 2014年07月13日 20:57
  • 2300

Java围棋吃子详解

上上周周末花了两天时间解决了围棋吃子程序,在上周又赶了一个socket的chat room,结果数据分析的课的作业就拉下了~_~。今天把围棋吃子程序及其思路拿出来与大家分享下。 首先,我们先进行单个...
  • u013787595
  • u013787595
  • 2014年04月08日 08:57
  • 2334

谈谈人工智能、围棋与数学

最近几天,AlphaGo与围棋世界冠军李世石的对弈引起了全世界的关注,已然成了历史性的事件。今天下午第四场比赛结束,由于AlphaGo程序出现bug,使得李世石获得了唯一的一次胜利。 这自然凸...
  • qq641542616
  • qq641542616
  • 2016年03月14日 00:42
  • 581

华为机试—围棋吃子(下围棋)判决(高级题160分:深度优先遍历)(图文吐血整理)

题目: 围棋中,一个棋子在棋盘上,与它直接紧邻的空点是这个棋子的“气”,棋子直接紧邻的点上,如果有同色妻子存在,则它们便相互组成一个不可分割的整体,它们的“气”也应一并计算。如果一个或一片棋子的“气...
  • wtyvhreal
  • wtyvhreal
  • 2015年01月12日 00:14
  • 17903

从孙子兵法理解围棋大龙攻杀的要诀: 攻守双方口诀

守方口诀;“拆张出头抓紧渡,以攻为守大转换,四面楚歌快做眼,走逃无路打打劫”; 攻方口诀:“逼住断开然后镇,攻击以前先补强,封锁取势破眼位,小心对手想打劫”;...
  • nottwya
  • nottwya
  • 2016年01月05日 19:09
  • 1070

实现对象的复用——享元模式(三):围棋棋子的解决方案

14.3 完整解决方案为了节约存储空间,提高系统性能,Sunny公司开发人员使用享元模式来设计围棋软件中的棋子,其基本结构如图14-4所示:在图14-4中,IgoChessman充当抽象享元类,Bla...
  • will130
  • will130
  • 2016年01月29日 11:04
  • 409

用OpenCV编程计算围棋棋盘黑白子总数

今天柯洁开始对战AlphaGo,虽然对围棋一窍不通,但这种大事我也在关注,知道胜负与最后棋盘上黑白子的数量有关。当我看到结局的棋盘时,黑白棋子那么多,一时也看不出来谁多谁少,就想着编个程序来计算一下。...
  • sinat_28309919
  • sinat_28309919
  • 2017年05月23日 15:05
  • 1010

简单的围棋棋盘打谱设计C#实现

博主接触围棋一段时间了,也挺有意思的,于是想用C#做一下围棋的软件,结果发现好多功能的算法不会啊。。。现在只做了基本的功能,嗯,可以自己打谱练习。后面博主还要研究一下数目和形势判断的算法,也请各位大侠...
  • wf824284257
  • wf824284257
  • 2017年01月31日 03:23
  • 1055

java围棋对弈实例

围棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应...
  • chongshangyunxiao321
  • chongshangyunxiao321
  • 2016年03月28日 13:59
  • 2895
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的围棋狂想(二)
举报原因:
原因补充:

(最多只允许输入30个字)