题目不难,玩过黑白棋的都懂,关键是看清题目输入要求,还有坑爹的输出格式。
之前做过中国象棋的题目,已经有了基础了,所以做起来不难。然后象棋就已经搞了四个方向了,结果黑白棋直接来了8个方向,每个方向都要判断,最后出现了这个超长的代码。。。。。
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
char nxt,p[10][10]; //nxt表示的是走棋方,输入M走棋之后要换掉
void check()
{
int i,j,m,n,flag = 1;
char temp;
if(nxt == 'W')
{
temp = 'B';
}
else
{
temp = 'W';
}
for(m = 1;m <= 8;m++)
{
for(n = 1;n <= 8;n++)
{
if(p[m][n] == '-')
{
//上
i = m-1;j = n;
if(p[i][j] == temp)
{
while(p[i][j] == temp)
{
i--;
}
if(p[i][j] == nxt)
{
if(flag == 1)
{
printf("(%d,%d)",m,n);
flag = 0;
}
else
{
printf(" (%d,%d)",m,n);
}
continue;
}
}
//下
i = m+1;j = n;
if(p[i][j] == temp)
{
while(p[i][j] == temp)
{
i++;
}
if(p[i][j] == nxt)
{
if(flag == 1)
{
printf("(%d,%d)",m,n);
flag = 0;
}
else
{
printf(" (%d,%d)",m,n);
}
continue;
}
}
//左
i = m;j = n-1;
if(p[i][j] == temp)
{
while(p[i][j] == temp)
{
j--;
}
if(p[i][j] == nxt)
{
if(flag == 1)