题目:这里
题解:2996反过来就行了。题解这里
//POJ 2993
char mp[40][40];
char s1[40], s2[40];
int main()
{
//打印没有字母的空盘
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < 8; j++)
{
mp[2*i][4*j] = '+';
mp[2*i+1][4*j] = '|';
mp[2*i][4*j+1] = '-';
mp[2*i][4*j+2] = '-';
mp[2*i][4*j+3] = '-';
}
mp[2*i][32] = '+';
mp[2*i+1][32] = '|';
mp[2*i][33] = '\0';
mp[2*i+1][33] = '\0';
if(i == 7)
{
for(int j = 0; j < 8; j++)
{
mp[2*i+2][4*j] = '+';
mp[2*i+2][4*j+1]='-';
mp[2*i+2][4*j+2]='-';
mp[2*i+2][4*j+3]='-';
}
mp[2*i+2][32]='+';
mp[2*i+2][33]='\0';
}
for(int j = 0; j < 8; j++)
{
if((i+j)%2 == 0)
{
mp[2*i+1][4*j+1]='.';
mp[2*i+1][4*j+2]='.';
mp[2*i+1][4*j+3]='.';
}
else
{
mp[2*i+1][4*j+1]=':';
mp[2*i+1][4*j+2]=':';
mp[2*i+1][4*j+3]=':';
}
}
}
// for(int i = 0; i < 17; i++)
// {
// for(int j = 0; j < 34; j++)
// {
// printf("%c", mp[i][j]);
// }
// printf("\n");
// }
scanf("%s%s", s1, s2);
for(int i = 0; s2[i] ;){
if(s2[i] == ','){
i++;
continue;
}
if(isupper(s2[i])){
int x = 8 - (s2[i+2]-'0');
int y = s2[i+1] - 'a';
mp[2*x+1][4*y+2] = s2[i];
i += 3;
}
else{
int x = 8 - (s2[i+1]-'0');
int y = s2[i]-'a';
mp[2*x+1][4*y+2] = 'P';
i += 2;
}
}
scanf("%s%s", s1, s2);
for(int i = 0; s2[i] ;){
if(s2[i] == ','){
i++;
continue;
}
if(isupper(s2[i])){
int x = 8 - (s2[i+2]-'0');
int y = s2[i+1] - 'a';
mp[2*x+1][4*y+2] = s2[i] - 'A' + 'a';
i += 3;
}
else{
int x = 8 - (s2[i+1]-'0');
int y = s2[i]-'a';
mp[2*x+1][4*y+2] = 'p';
i += 2;
}
}
for(int i = 0; i < 17; i++) printf("%s\n", mp[i]);
}