#include char chess[8][8]; bool white; char bwc[3] = ".:"; char sep[34] = "+---+---+---+---+---+---+---+---+"; char postochar(int pos) { return pos + 'a'; } char upcase( char a) { if ( a <= 'Z' ) return a; return a - 'a' + 'A'; } char lowcase( char a ) { if ( a > 'Z' ) return a; return a - 'A' + 'a'; } void parse( char *line, int p ) { while ( line[p] ) { char c = line[p]; if ( c > 'Z' ) c = 'P'; else p++; int col = line[p++] - 'a'; int row = line[p++] - '1'; row = 7 - row; // printf("-%c%c%d-\n", c, postochar(col), row); char s = c; if ( ! white ) s = lowcase(c); chess[row][col] = s; p++; } } int main() { for ( int i = 0; i < 8; i++ ) for ( int j = 0; j < 8; j++ ) { chess[i][j] = 0; } char line[512]; white = true; scanf("%s",line ); scanf("%s",line); // printf( "%s\n", line ); parse( line, 0 ); white = false; scanf("%s",line ); scanf("%s",line); parse( line, 0 ); for ( int i = 0; i < 17; i++ ) if ( i % 2 ) { for ( int j = 0; j < 8; j++ ) { char color = bwc[(i/2 + j) % 2]; printf( "|" ); printf( "%c", color); if ( ! chess[i/2][j] ) printf( "%c", color ); else printf( "%c", chess[i/2][j] ); printf( "%c", color); } printf( "|\n" ); } else printf( "%s\n", sep ); return 0; }