极趣五子棋软件及其源代码.
片断:
void CFiveXPDlg::TwoInSix(int m, int n, int p)
{
file://there are 2 chesses in a contigous 6 dots, and 2 blank every side, 2 blank inside
int m_count,a,b;
int m_six; file://must be 6 times
for (i=0;i<=14;i++)
{
for (j=0;j<=14;j++)
{
m_count=0;
for (a=i,b=j,m_six=0; (b<=14) && (b>=0) && (a<=14) && (a>=0) && ( (b!=j+6*n)||(a!=i+6*m) ); a=a+m,b=b+n,m_six++)
m_count=m_count + m_array[a][b];
if ( (m_count==p) && (m_six==6) ) file://if m_five!=6 , then maybe no blank beyond the 3 chesses...
{ file://p==2 or p==20
if ( (m_array[i][j]==0) && (m_array[i+5*m][j+5*n]==0) )
{
/* for (a=i+m,b=j+n; (b!=j+5*n)||(a!=i+5*m) ; a=a+m,b=b+n)
if ( m_array[a][b]==0 )
{
if (p==2)
m_2Iin6.Add( (m+1)*100000 + (n+1)*10000 + a*100+ b);
else
m_2Pin6.Add( (m+1)*100000 + (n+1)*10000 + a*100+ b);
}*/
for (a=i+m,b=j+n; (b!=j+5*n)||(a!=i+5*m) ; a=a+m,b=b+n)
if ( m_array[a][b]!=0 )
{
if (m_array[a-m][b-n]==0)
{
if (p==2)
m_2Iin6.Add( (m+1)*100000 + (n+1)*10000 + (a-m)*100+ (b-n) );
else
m_2Pin6.Add( (m+1)*100000 + (n+1)*10000 + (a-m)*100+ (b-n) );
}
if (m_array[a+m][b+n]==0);
{
if (p==2)
m_2Iin6.Add( (m+1)*100000 + (n+1)*10000 + (a+m)*100+ (b+n) );
else
m_2Pin6.Add( (m+1)*100000 + (n+1)*10000 + (a+m)*100+ (b+n) );
}
}
}//need change
}
}
}
}
连接:
都必须下载的