六子棋棋形所有情况总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

棋形所有情况

1代表字,0代表空位,abcdefghi代表位置,num1代表1的个数,X?代表棋盘中棋形个数

X1六连:111111

横向:for(num1=0,i=I,j=J;i<=I+6;i++)

{ if(c[i][j]=1)

num1++;}

if(num1=6)

x1++;

纵向:for(num1=0,i=I,j=J;j<=J+6;j++)

{ if(c[i][j]=1)

num1++;}

if(num1=6)

x1++;

斜向1:for(num1=0,i=I,j=J;i<=I+6,j<=J+6;i++,j++)

{ if(c[i][j]=1)

num1++;}

if(num1=6)

x1++;

斜向2:for(num1=0,i=I,j=J;i<=I+6,j>=J-6;i++,j--)

{ if(c[i][j]=1)

num1++;}

if(num1=6)

x1++;

x2七连:1111111

横向:for(num1=0,i=I,j=J;i<=I+7;i++)

{ if(c[i][j]=1)

num1++;}

if(num1=7)

x2++;

纵向:for(num1=0,i=I,j=J;j<=J+7;j++)

{ if(c[i][j]=1)

num1++;}

if(num1=7)

x2++;

斜向1:for(num1=0,i=I,j=J;i<=I+7,j<=J+7;i++,j++)

{ if(c[i][j]=1)

num1++;}

if(num1=7)

x2++;

斜向2:for(num1=0,i=I,j=J;i<=I+7,j>=J-7;i++,j--)

{ if(c[i][j]=1);

num1++;}

if(num1=7)

x2++;

x3活五:(在同一直线上的5颗同色棋子,符合“对方必须用两手棋才能挡住”的条件。挡住是指不让另一方形成六连或

长连。)共3种情况:

0111110

横向:if(c[i][j]=0&& c[i][j+1]=1&& c[i][j+2]=1&& c[i][j+3]=1&& c[i][j+4]=1&& c[i][j+5]=1&& c[i][j+6]=0)

x3++;

纵向:if(c[i][j]=0&& c[i+1][j]=1&& c[i+2][j]=1&& c[i+3][j]=1&& c[i+4][j]=1&& c[i+5][j]=1&& c[i+6][j]=0)

x3++;

斜向1:if(c[i][j]=0&& c[i+1][j+1]=1&& c[i+2][j+2]=1&& c[i+3][j+3]=1&& c[i+4][j+4]=1&& c[i+5][j+5]=1&& c[i+6][j+6]=0)

x3++;

斜向2:if(c[i][j]=0&& c[i+1][j-1]=1&& c[i+2][j-2]=1&& c[i+3][j-3]=1&& c[i+4][j-4]=1&& c[i+5][j-5]=1&& c[i+6][j-6]=0)

x3++;

00111101

横向:if(c[i][j]=0&& c[i][j+1]=0&& c[i][j+2]=1&& c[i][j+3]=1&& c[i][j+4]=1&& c[i][j+5]=1&& c[i][j+6]=0&& c[i][j+7]=1)

x3++;

纵向:if(c[i][j]=0&& c[i+1][j]=0&& c[i+2][j]=1&& c[i+3][j]=1&& c[i+4][j]=1&& c[i+5][j]=1&& c[i+6][j]=0&& c[i+7][j]=1)

x3++;

斜向1:if(c[i][j]=0&& c[i+1][j+1]=0&& c[i+2][j+2]=1&& c[i+3][j+3]=1&& c[i+4][j+4]=1&& c[i+5][j+5]=1&& c[i+6][j+6]=0&&c[i+7][j+7]=1)

x3++;

斜向2:if(c[i][j]=0&& c[i+1][j-1]=0&& c[i+2][j-2]=1&& c[i+3][j-3]=1&& c[i+4][j-4]=1&& c[i+5][j-5]=1&& c[i+6][j-6]=0&&c[i+7][j-7]=1)

x3++;

10111100

横向:if(c[i][j]=1&& c[i][j+1]=0&& c[i][j+2]=1&& c[i][j+3]=1&& c[i][j+4]=1&& c[i][j+5]=1&& c[i][j+6]=0&& c[i][j+7]=0)

x3++;

纵向:if(c[i][j]=1&& c[i+1][j]=0&& c[i+2][j]=1&& c[i+3][j]=1&& c[i+4][j]=1&& c[i+5][j]=1&& c[i+6][j]=0&& c[i+7][j]=0)

x3++;

斜向1:if(c[i][j]=1&& c[i+1][j+1]=0&& c[i+2][j+2]=1&& c[i+3][j+3]=1&& c[i+4][j+4]=1&& c[i+5][j+5]=1&& c[i+6][j+6]=0&&c[i+7][j+7]=0)

x3++;

斜向2:if(c[i][j]=1&& c[i+1][j-1]=0&& c[i+2][j-2]=1&& c[i+3][j-3]=1&& c[i+4][j-4]=1&& c[i+5][j-5]=1&& c[i+6][j-6]=0&&c[i+7][j-7]=0)

x3++;

X4眠五:(在同一直线上的5颗同色棋子,符合“对方用一手棋就能挡住”的条件。)

共4种情况:

-1111110

横向:if(c[i][j]=-1&& c[i][j+1]=1&& c[i][j+2]=1&& c[i][j+3]=1&& c[i][j+4]=1&& c[i][j+5]=1&& c[i][j+6]=0)

x4++;

纵向:if(c[i][j]=-1&& c[i+1][j]=1&& c[i+2][j]=1&& c[i+3][j]=1&& c[i+4][j]=1&& c[i+5][j]=1&& c[i+6][j]=0)

x4++;

斜向1:if(c[i][j]=-1&& c[i+1][j+1]=1&& c[i+2][j+2]=1&& c[i+3][j+3]=1&& c[i+4][j+4]=1&& c[i+5][j+5]=1&& c[i+6][j+6]=0)

x4++;

斜向2:if(c[i][j]=-1&& c[i+1][j-1]=1&& c[i+2][j-2]=1&& c[i+3][j-3]=1&& c[i+4][j-4]=1&& c[i+5][j-5]=1&& c[i+6][j-6]=0)

x4++;

相关文档
最新文档