六子棋棋形所有情况总结_第1页
六子棋棋形所有情况总结_第2页
六子棋棋形所有情况总结_第3页
六子棋棋形所有情况总结_第4页
六子棋棋形所有情况总结_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、棋形所有情况1代表字,0代表空位,abcdefghi代表位置,numl代表1的个数,X?代表棋盘中棋形个数XI 六连:111111橫向:for (nuinl=0, i=I. j=J: i=I+6: i+) 辻(cij=l)nuinl+;if (numl=6)X1+:纵向:for(numl=0. i=I. j二J; j=J+6; j卄) 辻(cij=l)numl+;if(numl=6)X1+:斜向 1: for(nuinl=0, i=I, j二J;i=I+6, j=J+6;i+, j+) 辻(cij=l)numl+;if (numl=6)X1+:斜向 2: for(nuinl=0, i=I, j

2、=J;i=J-6;i+, j) 辻(cij=l)nuinl+:if (numl=6)X1+:*2七连:1111111橫向:for (nuinl=0, i=I. j=J: i=I+7: i+) 辻(cij二 1)nuinl+;if (numl=7)x2+:纵向:for(nuinl=0, i=I, j=J: j=J+7: j卄) if(cij=l)nuinl+: if(numl=7) x2+:斜向 1: for(numl=0, i=I, j=J;i=I+7, j=J+7;i+, j+) 辻(cij=l)numl+;if (numl=7)x2+;斜向 2: for(numl=0, i=I, j=J;

3、i=J-7;i+, j) 辻(cij二 1);numl+;if (nuinl=7)x2+:x3活五:(在同一直线上的5颗同色棋了,符合“对方必须用两手棋才能挡住”的条件。挡住是指不让另一方形成六连或长连。)共3种情况:0111110横 向:if(cij=0& cCiCj+l=l& ci j+2=l& ci j+3=l& cCij+4=l& cij+5=l& cij+6=0)x3+;纵 向:辻(ci j=0&S: ci+l j=l& ci+2 j=l& ci+3 j=l& ci+4 j=l& ci+5j=l& ci+6 j=0)x3+;斜向 1: if(ci j=0& ci+lj+l=l& ci

4、+2 j+2=m ci+3 j+3=l& ci+4j+4=l& ci+5j+5=l& ci+6j+6二0)x3+;斜向 2: if(cij=0& ci+lci+2 j-2=l& ci+3 tj-3=l&ci+4j-4=l& ci+5j-5=l& ci+6j-6=0)x3+;00111101横 向:if(ciCj=0& cij+l=0& cij+2=l& cij+3=l& cCij+4=l& cij+5=l& cij+6=0& cij+7=l)x3+;纵向J if(c订ci+l j=0& ci+2ci+3 j=l&ci+4ci+5j=l& ci+6ci+7j=l) x3+;斜向 1: if(ci

5、 j=0& ci+lj+l=0& ci+2 j+2=m ci+3 j+3=l&ci+4 j+4=l& ci+5 j+5=l& ci+6 j+6=0&ci+7 j+7=l) x3+;斜向 2: if(ci j=0& ci+lj-l=0& ci+2 j-2=l& ci+3 j-3=l&ci+4 j-4=l& ci+5 j-5=l& ci+6 j-6=0&ci+7 j-7=l) x3+;10111100横 向:if(cij=l& cij+l=0& ci j+2=l& ci j+3=l& cij+4=l& cij+5=l& cxj+6=0& cij+7=0)x3+;纵 向:辻(cij=l& ci+lj

6、=0& ci+2j=l& ci+3 j=l& ci+4j=l& ci+5刃ci+6j=0& ci+7j=0)x3+;斜向 1: if(cij=l& ci+lj+l=0& ci+2 j+2=l& ci+3 j+3=l& ci+4 j+4=l& ci+5j+5二 1& ci+6 j+6=0&ci+7 j+7=0)x3+;斜向 2: if(cij=l& ci+lj-l=0& ci+2 j-2=l& ci+3 j-3=l& ci+4j-4=l& ci+5j-5=l& ci+6j-6=0&ci+7j-7=0)x3卄;X4眠五:(在同一直线上的5颗同色棋了,符合“对方用一手棋就能挡住”的条件。)共4种情况

7、:横 向:if(cij=-l& cCij+l=l& cij+2=l& ci j+3=l& cij+4=l& cij+5=l& cij+6=0)x4+:纵向:辻(cij=-l& cCi+lj=l& ci+2ci+3 j=l&ci+4j=l& ci+5j=l& ci+6j=0)x4卄;斜向 1: if (ci j=-l& ci+l j+l=l&ci+2 j+2=l& ci+3 j+3=l& cCi+4j+4=l& ci+5j+5=l& ci+6j+6=0)x4卄;斜向 2: if(cij=-l& ci+l j-l=l&ci+2 j-2=l& ci+3 j-3=l&ci+4ci+5ci+6j-6=0

8、) x4卄;横向:辻(cij= 0& cij+l=l& ch j+2=l& cij+3=l& cij+4=l& ci j+5=l& cij+6=-l)x4+;纵向:if(cij= 0& ci+lj=l& ci+2j=l& ci+3 j=l& ci+4ci+5 j=l& ci+6 j=-l)x4+;斜向 1: if(cij=0& ci+lj+l=l& ci+2 j+2=l& ci+3 j+3=l& ci+4j+4=l& ci+5j+5=l& ci+6j+6=-)x4卄;斜向 2: if(cij=O& ci+lj-l=l& cCi+2 j-2=l& ci+3 j-3=l& ci+4j-4=l& c

9、i+5j-5=l& ci+6j-6=-l)x4+;a、b中至少有一个为-1且ch中有5个1、1个0横向:cIJ=-l&cIJ+l=O|if (cI J=-mcI J+l=-l 11 cl J=o&cl J+l=-l) for(i=L fact2=0fact3=0, j=J+2;j=J+7;j+) if(ci j=l)fact2 卄;else if (ci j=0)fact3+;if(fact2=5&fact3=l)x4+:g、h中至少有一个为-.且f中有5个1、1个0横向:clJ+6=-l&cIJ+7=0|if (cI j+6=-mcI J+7=-l| Icl J+6=0&cI J+7=-l)

10、 for(i=I, fact2=0, fact3=0, j=J;j=J+5:j+) if(ci j=l)fact2+;else if (ci j=0) fact3+;if(fact2=5&fact3=l) x4+;x5活四:(在同一直线上的4颗同色棋了,符合“对方必须用两手棋才能挡住”的条件。)一种情况:OOIHIOO横 向:if(cij=O& cij+l=O& ci j+2=l& ci j+3=l& cij+4=l& cij+5=l& cij+6=0& cij+7=0)x5+:纵 向:if(cij二0& ci+lj=O& ci+2j=l& ci+3 ci+4j=l& ci+5j=l& ci+

11、6j=0& ci+7j=0)x5卄;斜向 1: if(cij=O& ci+lj+l=O& ci+2 j+2=l& ci+3 j+3=l& ci+4j+4=l& ci+5j+5=l& ci+6j+6=0&ci+7j+7=0)x5+;斜向 2: if(cij=O& ci+lj-l=O& ci+2 j-2=l& ci+3 j-3=l& ci+4 j-4=l& ci+5 j-5=l& ci+6 j-6=(Wt&ci+7 j-7=0)x5+;X6眠四:(在同一直线上的4颗同色棋了,符合“对方用一手棋就能挡住”的条件。)cIJ=-l&cI J+7=0|一种情况:a、h中至少有一个是T, bg中有4个1、2

12、个0 横向: if(cIJ=-l&cIJ+7=-l|I clJ=0&cIJ+7=-l) for(i=L fact2=0, fact3=0, j=J+l;j=J+6:j+) if(ci j=l)fact2+;else if (ci j=0)fact3+: if(fact2=4&fact3=2) x6+;X7活三:(在同一直线上的3颗同色棋了,符合“再下一手棋就能活四”的条件。)共四种情况:00111000 横 向:辻(ci j=0&St ci j+l=0& ci j+2=l& ci j+3=l& cij+4=l& cij+5=0& cij+6=0& cij+7=0)x7卄;纵 向:if(cij=

13、0& ci+lj=0& ci+2j=l& ci+3j=l& ci+4ci+5j=0& ci+6 j=0& ci+7 j=0)x7+;將向 1: if(cij=0& ci+lj+l=0& ci+2 j+2=m ci+3 j+3=l& ci+4j+4=l& ci+5j+5=0& ci+6j+6=0&ci+7j+7=0)x7+:斜向 2: if(cij=0& ci+lj-l=0& ci+2 j-2=l& ci+3 j-3=l& ci+4 j-4=l& ci+5 j-5=0& ci+6 j-6=0&ci+7 j-7=0)x7+:00110100 横 向:if(cij二0&业 cCij+l=0& ci

14、j+2=l& ci j+3=l& cij+4=0& cij+5=l& cij+6=0& cij+7=0)x7+:纵 向:if(cij=0&ci+lj=0&ci+2j=l&ci+3ci+4j=0& ci+5j=l& ci+6j=0& ci+7j=0)x7卄;斜向 1: if(cij=0& ci+lj+l=0& ci+2 j+2=l& ci+3 j+3=l& ci+4j+4=0& ci+5j+5=l& ci+6j+6=0&ci+7j+7=0)x7+;斜向 2: if(cij=0& ci+lj-l=0& ci+2 j-2=l& cCi+3 j-3=l& cCi+4 j-4=0& ci+5ci+6 j

15、-6=0&ci+7 j-7=0)x7+;00101100 横向J if(ci.j=0& ci j+l=0& ci j+2=l& ci j+3=0&cij+4=l& ci j+5=l& cij+6=0ft& cij+7=0) x7+;纵 向:if(cij=0& ci+lj=0& ci+2j=l& ci+3 j=0& ci+4ci+5j=l& ci+6j=0& cx+7j=0) x7+;斜向 1: if(cij=0& ci+lj+l=0& ci+2 j+2=l& ci+3 j+3=0& ci+4j+4=l& ci+5j+5=l& ci+6j+6=0&ci+7j+7=0) x7卄;斜向 2: if(

16、ci j=0& ci+lj-l=0& ci+2 j-2=l& ci+3 j-3=0& ci+4j-4=l& ci+5j-5=l& ci+6j-6=0&ci+7j-7=0) x7+;00011100 横 向:if(cij:=0& cij+l=0& ci j+2=0& cCx j+3=l& cij+4=l& ci j+5=l& cij+6=0SE& cij+7=0)x7+;纵 向:if(cij=0& ci+lj=0& ci+2j=0& ci+3刃 ci+4ci+5j=l& ci+6j=0& ci+7j=0)x7+:斜向 1: if(cij=0& ci+l j+l=0& ci+2 j+2=0& ci

17、+3 j+3=l& ci+4 j+4=l& ci+5 j+5=l& ci+6 j+6=0&ci+7 j+7=0)x7+:斜向 2: if(cij=0& ci+lj-l=0& ci+2 j-2=0& ci+3 j-3=l& ci+4 j-4=l& ci+5 j-5=l& ci+6 j-6=0&ci+7 j-7=0)x7+;X8朦胧三:(在同一直线上的3颗同色棋了,符合“再下一手棋只能形成眠四,但如果再下两手棋的话就能形成活五的条件。)共三种情况(分别对应3种活五的情况):clJ=-l&cI J+7=0| Ia、h中至少有一个为-1, b=g=0, cf中有3个1、3个0 横向: 辻(cIJ=-l

18、&clJ+7=-l|I cI J=0&cIJ+7=-l) if (cl J+3=0&cCl J+6=0)for(i=I, fact2=0, fact3=0, j=J+2;j=J+5;j+)if(ci j=l)fact2+;else if(cij=0)fact3+;if(fact2=3&fact3=3)x8+:a=-l, h=i=0, bg 中有 3 个 1、3 个 0横向:if(cIJ=-l&cIJ+7=0&cIJ+8=0) for(i=I, fact2=0, fact3=0, j=J+l;j=J+6:j+) if(ci j=l)fact2+;else if (ci j=0)fact3+:if

19、(fact2=3&fact3=3)x8+;i=-l, a=b=O, ch 中有 3 个 1、3 个 0横向:if (cCl J+8=-l&cl J=O&cI J+i=O) for(i=I, fact2=0, fact3=0, j=J+2;j=J+7;j+) if (ci j=l)fact2+;else if(cij=0)fact 3卄;if(fact2=3&fact3=3)x8卄;x9眠三:(在同一直线上的3颗同色棋子,符合“再下两手棋也只能形成眠五”的条件。共2种情况:b中至少有一个为-1, Jh中有3个1、3个0 横向:cIJ=-l&cI J+1=O|if (cIJ+1=-1| IcIj+1 Al) for(i=I, fact2=0, fact3=O, j=J+2;j=J+7;j+) if (ci j=l)fact2+;else if(cij=O)fact3+;辻(fact2=3&fact3=3) x8+;g、h中至少有一个为-1,中有3个1、3个0clJ+6=-l&cIJ+7=0|横向: if (cn J+6=*mcl J+7A1H cI J+6=0&cl j+7=-l) for(i=I, fact2=0, fact3=0, j=J;j=J+5;j+) if(ci j=l)fact2+;else if (ci j=0)fact3+;if(fact2=3&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论