五子棋算法--禁手的判断

原创 2004年08月21日 21:55:00

  区分是不是禁手,不能简单地看是不是走成了“三三”“四四”,而应该是这样的:
1、只要黑方下一子后,形成“连五”,那就不考虑什么禁不禁手了。
2、如果没有形成“连五”,而是形成了“长连”,就肯定是禁手。
3、前两条均不成立的情况下,如果黑方形成了一种局面,令白方无论怎样防守均无可挽回败局,则:如果这种局面是“四三”,则不是禁手,否则是禁手。
4、前三条均不成立的任何形势,均不是禁手。

  换句话说,黑棋只能以“四三”取胜(呵呵,抛开对方眼花的情况不算),如果取胜之道不是“四三”,则是禁手。如果某一局面并不能使黑棋取胜,无论是“三三”也好,“四四”也好,均不算禁手。如下面几个例子,看上去象是禁手,其实不是。

图一,a点不是“三三”禁手,因为横向的“长连”导致黑棋无法因此取胜。
┼┼┼┼┼┼┼┼
┼●a●┼●●┼
┼┼●┼┼┼┼┼
┼┼●┼┼┼┼┼

图二,a点不是“三三”禁手,因为横向上是假活三。
┼┼┼●┼┼┼┼
○┼●a●┼○┼
┼┼┼●┼┼┼┼

图三,a点也不是“三三”禁手,因为如果黑方走a点后,a点上方一点因为有四四禁手不能走,故纵向的黑棋不是活三。
┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼○┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼●●┼┼┼┼┼┼┼┼
┼┼┼┼┼┼●●○┼●┼┼┼┼┼
┼┼┼┼┼●┼●●○┼┼┼┼┼┼
┼┼┼┼○○a○○┼┼┼┼┼┼┼
┼┼┼┼┼┼┼●┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼

五子棋禁手判定算法

         禁手的判定较为复杂,设计一个判断禁手的算法既要分析构成它的棋型又要找到合适的搜索方法。         首先分析棋型。先考虑构成长连禁手的棋型,构成长连的棋型较简单,可归纳为一种,即...
  • JkSparkle
  • JkSparkle
  • 2006年06月22日 21:57
  • 5758

五子棋C++源代码实现禁手

  • 2011年05月07日 09:32
  • 1.35MB
  • 下载

【C语言】五子棋胜负判定算法及源代码

五子棋胜负的判定,一般有一下两种算法: 1.扫描整个棋盘,分别扫描四个方向是否有5个连子。网上找了很多五子棋源码都是用此算法,这意味着每下一个棋子都要扫描一遍19×19的棋盘,复杂而且低效,代码略。 ...
  • u010049708
  • u010049708
  • 2014年02月15日 15:24
  • 3339

java-----五子棋小游戏(三)-----判断输赢

一、代码实现
  • u011459278
  • u011459278
  • 2014年04月13日 23:23
  • 2789

五子棋游戏中判断胜负的C++源代码

今天在看《精通Windows Sockets 网络开发——基于Visual C++》(孙海民 编著,人民邮电出版社出版)这本书的时候,有一个网络五子棋游戏的实例,个人觉得除了服务器和客户端通信、管理用...
  • u013149325
  • u013149325
  • 2013年12月14日 13:54
  • 2274

今天用COCOS2DX写了个五子棋,记录下判断输赢的算法

思路是当一方下完棋之后判断他周围有没有同样的棋子,如果有,就设定那个方向递归下去,当递归到5层的时候跳出,递归不到五层的时候跳出层数 主要是有8个方向,代码有点长,其实思路还是挺简单的int Pl...
  • baijiajie2012
  • baijiajie2012
  • 2014年02月12日 21:21
  • 1890

AS3.0五子棋判断胜负及人机算法(AI)

1.五子棋胜负算法(使用了对棋盘进行全盘判断)function win():void //将胜负判断封装成函数,便于调用 { ww=new wh...
  • qq_28779503
  • qq_28779503
  • 2015年11月11日 21:48
  • 696

五子棋算法判断输赢

五子棋相信大部分人都玩过,至少应该听说过。 简述一下规则:当在棋盘的横行或竖行或斜行(左斜与右斜)有五个及以上连续的棋子的时候,则为赢。 分析一下五子棋的算法,当下一个棋子的时候(对应相应的棋盘应该有...
  • qq_28051453
  • qq_28051453
  • 2016年07月06日 23:13
  • 3630

java五子棋的输赢算法判断

  • 2013年05月17日 13:23
  • 107KB
  • 下载

一个无禁手规则的五子棋程序

  • 2008年12月27日 01:54
  • 215KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:五子棋算法--禁手的判断
举报原因:
原因补充:

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