题意:
2996 是给你一个棋盘,让你输出棋盘上棋子的坐标。
2993是给你棋子的坐标,输出原来的棋盘。
样例就是输入输出反过来。
因吹斯听。(2993的输入好烦好智障。string强无敌。)
题解:
没什么好说的,含着泪写就行了。
2996:
#include<cstdio>
char s[40][40];
int main()
{
int flag = 0;
for (int i = 0; i < 17; i++)
{
scanf("%s",s[i]);
}
printf("White: ");
for (int i = 15; i >= 0; i--)
{
for (int j = 0; j < 32; j++)
{
if(s[i][j] == 'K')
{
if(flag)
printf(",");
printf("K%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
for (int i = 15; i >= 0; i--)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'Q')
{
if(flag)
printf(",");
printf("Q%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
for (int i = 15; i >= 0; i--)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'R')
{
if(flag)
printf(",");
printf("R%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
for (int i = 15; i >= 0; i--)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'B')
{
if(flag)
printf(",");
printf("B%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
for (int i = 15; i >= 0; i--)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'N')
{
if(flag)
printf(",");
printf("N%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
for (int i = 15; i >= 0; i--)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'P')
{
if(flag)
printf(",");
printf("%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag = 1;
}
}
}
printf("\nBlack: ");
flag = 0;
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'k')
{
if(flag)
printf(",");
printf("K%c%d",j/4+'a',8-i/2);
if(flag == 0)
flag =1;
}
}
}
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'q')
{
if(flag)
printf(",");
printf("Q%c%d",j/4+'a',8-i/2);
}
}
}
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'r')
{
if(flag)
printf(",");
printf("R%c%d",j/4+'a',8-i/2);
}
}
}
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'b')
{
if(flag)
printf(",");
printf("B%c%d",j/4+'a',8-i/2);
}
}
}
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'n')
{
if(flag)
printf(",");
printf("N%c%d",j/4+'a',8-i/2);
}
}
}
for (int i = 0; i < 17; i++)
{
for(int j = 0; j < 32; j++)
{
if(s[i][j] == 'p')
{
if(flag)
printf(",");
printf("%c%d",j/4+'a',8-i/2);
}
}
}
}
2993:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char t[9][9];
string s[2],sb;
int main()
{
memset(t,0,sizeof t);
s[0] = " ";
s[1] = " ";
cin>>sb>>s[0]>>sb>>s[1];
//cout<<s[0]<<endl<<s[1]<<endl;
for (int i = 0; i < s[0].size(); i++)
{
if(i == 0)
{
if(s[0][i] >= 'a')
{
t[8 - (s[0][i + 1] - '0')][s[0][i] - 'a'] = 'P';
continue;
}
t[8 - (s[0][i + 2] - '0')][s[0][i + 1] - 'a'] = s[0][i];
}
if (s[0][i] == ',')
{
if(s[0][i + 1] >= 'a')
{
t[8 - (s[0][i + 2] - '0')][s[0][i + 1] - 'a'] = 'P';
continue;
}
t[8 - (s[0][i + 3] - '0')][s[0][i + 2] - 'a'] = s[0][i + 1];
}
}
for (int i = 0; i < s[1].size(); i++)
{
if(i == 0)
{
if(s[1][i] >= 'a')
{
t[8 - (s[1][i + 1] - '0')][s[1][i] - 'a'] = 'p';
continue;
}
t[8 - (s[1][i + 2] - '0')][s[1][i + 1] - 'a'] = (s[1][i] + 32);
}
if (s[1][i] == ',')
{
if(s[1][i + 1] >= 'a')
{
t[8 - (s[1][i + 2] - '0')][s[1][i + 1] - 'a'] = 'p';
continue;
}
t[8 - (s[1][i + 3] - '0')][s[1][i + 2] - 'a'] = (s[1][i + 1] + 32);
}
}
int flag = 0;
for (int i = 0; i < 17; i++)
{
if(i % 2 ==1)
{
flag = !flag;
}
if(i % 2 == 0)
{
cout<<"+---+---+---+---+---+---+---+---+"<<endl;
continue;
}
int temp = flag,sum = 0;
for (int j = 0; j < 33; j++)
{
if(j % 4 == 0)
{
printf("|");
continue;
}
if(j % 2 == 1)
{
if(temp)
{
printf(".");
}
else printf(":");
sum++;
if(sum == 2)
{
temp = !temp;
sum = 0;
}
continue;
}
if(j % 2 == 0)
{
if(t[i/2][j/4] != 0)
{
printf("%c",t[i/2][j/4]);
}
else
{
if(temp)
{
printf(".");
}
else printf(":");
}
}
}
cout<<endl;
}
}