一些事实
不带禁手的五子棋,黑棋必胜。 带禁手的五子棋,黑棋必胜。 五手两打,带禁手,黑棋必胜。--- 关键词:地毯谱 也就是说,禁手规则,gomokupro规则等等所有不带交换的限黑规则都被证明 黑棋必胜。 “Gomoku Pro”规则: 由于黑棋先下具备较大优势,为进行平衡特引入“Gomoku Pro”规则如下: 1、黑方的第一枚棋子应下在天元也就是棋盘中心点上。 2、白方下第二枚棋子,可以在棋盘的任意位置。 3、黑方下第三枚棋子,需要落在棋盘中间“5x5”的范围之外。 4、之后黑白轮流走子,不再有限制,走成超过5子的长连不算获胜。
一些五子棋人机博弈引擎
tito2014 弈心执黑
来源:
五子棋先下的一定赢吗?如何证明? - 胡天硕的回答 - 知乎https://www.zhihu.com/question/24053236/answer/32848231
做五子棋 AI 的一些推荐资料
想写一个机器学习类的五子棋,可能么?可能的话需要看什么书,参考什么,求指点 - 胡天硕的回答 - 知乎 https://www.zhihu.com/question/27639315/answer/38186534
就去弈心作者的主页上去看吧,所有有价值的东西应该都在那里了…… https://www.aiexp.info/
Start your own Gomoku programs using any of following Gomocup AI template, it helps you to communicate with the Gomocup interface easily. https://gomocup.org/download-for-developers/
五子棋的一些值得注意的规则
- 指定开局 指定开局:指黑方决定了前三个棋子落于何处,其中包括两个黑子和一个白子,一般由黑方完成。黑方应同时给出第五手需要的打点数量。 开局形状均以“星”和“月”命名。采用指定开局办法的比赛均采用26种开局,包括斜指开局的长星局、峡月局、恒星局、水月局、流星局、云月局、浦月局、岚月局、银月局、明星局、斜月局、名月局、彗星局和直指开局的寒星局、溪月局、疏星局、花月局、残月局、雨月局、金星局、松月局、丘月局、新月局、瑞星局、山月局、游星局。 黑方第一子应落在天元处(黑1)。 黑方还决定了白方的第一子的落点(白2)。 斜指开局:指白2落子在黑1斜侧方的开局,但必须与黑1紧密相连。斜指开局共13种。 直指开局:指白2落子在与黑1成平行线或垂直线的方向,但必须与黑1紧密相连。直指开局共13种。 黑方的第三步(黑方的第二子,称“黑3”),应落在围绕天元点5线×5线而形成的以天元为正中的由交叉点组成的区域内。
简述:在采用指定开局时黑方的第一枚棋子应下在天元上。同时在下面的对局中应执行三手交换和五手N打及禁手规则。
- 三手可交换 在采用指定开局的对局中,在黑3之后,白方在应白4之前,可选择黑棋或白棋,每盘棋只有一次选择机会,如提出交换黑、白方,则黑方必须同意交换。
- 五手N打 黑方在指定开局的同时要给出本局盘面黑5时所需的打点数量,此后无论对局者谁执黑棋,都需要在落第五手时按照要求的打点数量,在盘面上的空白交叉点上放置相应数量且位置不同形的黑子,白方只能在这些黑子中留下一个黑子作为黑5。
- 禁手 三三禁手:黑棋一子落下同时形成两个或两个以上的活三,此子必须为两个活三共同的构成子 四四禁手:黑棋一子落下同时形成两个或两个以上的冲四或活四 长连禁手:黑棋一子落下形成一个或一个以上的长连。 对局中如果使用三三禁手、四四禁手、长连禁手,将被判负。
- Pass权 Pass(放弃行棋权):棋手放弃行棋的权利。
判定胜负的规则
终局胜负判定: (1)最先在棋盘上形成五连的一方为胜。白棋长连视同五连。 (2)黑方出现禁手,则判白方胜。如白方在黑方出现禁手后,未立即指出而又落下一白子,则黑方禁手不再成立。 若黑方走出长连禁手,白方只要是在终局前指出此禁手,判白方胜。 黑方五连与禁手同时形成,禁手失效,黑方胜。
参考资料:
五子棋(Connect5)项目规则 http://computergames.caai.cn/jsgz16.html
一些值得参考的例子
基于贪心策略直接搜索算法和极大极小博弈树算法的智能人机博弈五子棋游戏https://www.write-bug.com/article/100.html
Carbon:目前棋力最强的开源引擎。我没怎么认真研究过,不过据说代码可读性不错,比较推荐。作者是来自波兰的Michał Czardybon。 https://github.com/gomoku/Carbon-Gomoku
Pela:在carbon之前曾经被认为最强的开源引擎,现在国内比较火的安卓五子棋大师就是盗的它的代码。算杀挺快。不过这程序AI的棋风有些不太正统,和它下过的都知道是怎么一回事。可以读一读,但不太建议模仿它。作者是来自捷克的Petr Laštovička。https://sourceforge.net/projects/piskvork/
Chis,今年第一次参加Gomocup,就进入了Freestyle 1组。作者Peiming Zheng。https://github.com/ChisBread/Chis
Wine,也是比较新的作品,明年应该会参加Gomocup。作者Jinjie Wang。https://github.com/jinjiebang/AIWine
Rapfi,实力非常强大的五子棋引擎,今年在Gomocup的Freestyle组和Fastgame组都取得了第二名。不过今年的版本没有开源,在这里的开源版本是去年的,不过依然具有相当出色的棋力,去年Gomocup的Freestyle组的第四名。作者Haobin Duan。 https://github.com/dhblooo/Rapfi-gomocup
世界最强的是弈心(不论是否有禁手)。孙锴连续三届gomocup比赛冠军,在各种比赛中碾压所有其他ai(总决赛以50 : 4赢了其他ai)。只能在windows下运行,也没有手机版。 作者是上海交大的本科生:孙锴 https://www.aiexp.info/pages/yixin.html
连珠终结者
有禁手的免费的最强的目测是是wind2323网友的蜗牛连珠:【软件发布】蜗牛连珠2014 Android测试版 但如果下无禁手是下不过toto和五子棋大师的https://github.com/wind23/SlowRenju/
Gobang Introduction https://github.com/VizXu/Gobang
参考资料:
有哪些开源的计算机五子棋程序的源代码值得初学者阅读? - Tianyi Hao的回答 - 知乎https://www.zhihu.com/question/39871337/answer/83581071
棋力最强的五子棋app是什么? - 胡天硕的回答 - 知乎https://www.zhihu.com/question/24642962/answer/32967354
展望(未来)
2017年10月,AlphaGo Zero横空出世,完全从零开始,仅通过自我对弈就能天下无敌,瞬间刷爆朋友圈,各路大神分分出来解读,惊叹于其思想的简单、效果的神奇。很快就有大神放出了开源版的AlphaGo Zero,但是只有代码,没有训练出来的模型,因为据大神推算,在普通消费级的电脑上想训练出AlphaGo Zero的模型需要1700年!然而DeepMind在AlphaGo Zero的论文里只强调运行的时候需要4个TPU,而完全没有提及训练过程的最大计算需求在于生成self-play数据,还引起了一点小争议。还好,过了不到两个月,在12月初,DeepMind就在Arxiv上低调放出了更加通用的AlphaZero的论文。AlphaZero几个小时就征服围棋、国际象棋和日本将棋的壮举再次惊叹世人,但同时DeepMind大方公开的self-play阶段使用的5000个TPU也让大家纷纷感叹,原来是“贫穷限制了我们的想象力”!
AlphaZero实战:从零学下五子棋(附代码) https://zhuanlan.zhihu.com/p/32089487
一些入门教程
五子棋入门级AI的设计与实现 https://zhuanlan.zhihu.com/p/25650252
一看就懂的Alpha-Beta剪枝算法详解 https://blog.csdn.net/baixiaozhe/article/details/51872495