规则:
黑棋先行,白棋后行,黑白棋交替进行。落子只能落在未有落子的三条线的共同交叉点上。 3. 当一方在率先组成了五子相连直线,则该方胜利,游戏结束。
打印棋盘:
void Board::print()
{
int len_=0;
//前7行
while(len_<7)
{
for (int i = 0; i < N-len_-1; i++)
cout << " ";
cout<<len_<<" ";
for (int k = 0; k <= len_; k++)
cout << board[len_ -k][k] << " ";
cout <<len_ << endl;
len_++;
}
//中间行
len_ = 0;
int x = 7;
int y = 0;
int len=7,flag=1;
while (len_ < 8)
{
if (len_ + 7 < 10)len = 7;
else len = 6;
for (int i = 0; i < len; i++)
cout << " ";
if (flag == 1)
{
flag = 0;
cout << len_ + 7<<" ";
for (y = len_; y <= len_ + 7; y++)
cout << board[x - y][y] << " ";
cout << len_ + 7 << endl;
if (len_ == 7)
break;
}
else
{
flag = 1;
cout << " ";
if (len_ + 7 >= 10)
cout << " ";
for (y = len_+1; y <= len_ + 7; y++)
cout << board[x - y+1][y] << " ";
cout << endl;
x += 2; len_++;
}
}
//后七行
len_ = 7
;
x = 14+8;
y = 8;
while (len_ >=0)
{
for (int i = 0; i <= N - len_+1; i++)
cout << " ";
for (int k=y;k<=14;k++)
cout << board[x-k][k] << " ";
cout << endl;
len_--; y++; x++;
}
}
总结:ai算法还是有点问题,但已经能够提交。