#include /* kqrr bbnn pppp pppp */ int w[17], b[16]; int wri=2, wbi=4, wni=6, wpi=8; int bri=2, bbi=4, bni=6, bpi=8; char text[16][3]={"K","Q","R","R","B","B","N","N","","","","","","","",""}; int y; void print(char *g, int l, int m) { int i; int zero, hi; do { zero=1; hi = 0; for (i=l; i<=m; i++) { if (w[i]) { if (zero == 1 || (7-(w[hi]-9)/8 > 7-(w[i]-9)/8)){ zero = 0; hi = i; } } } if (zero) break; if (y++) printf(","); printf("%s%c%c", g, 'a'+(w[hi]-9)%8, '1'+7-(w[hi]-9)/8); w[hi]=0; } while (1); } int main(void) { int i,j,c; for (i=0;i<8;i++){ /* for (j=0;j<4*8+1; j++) getchar(); getchar(); */ for (j=0; j<8; j++){ /* getchar(); getchar(); */ c = getchar(); switch(c){ case 'K': w[0]=i*8+j+9; break; case 'Q': w[1]=i*8+j+9; break; case 'R': w[wri++]=i*8+j+9; break; case 'B': w[wbi++]=i*8+j+9; break; case 'N': w[wni++]=i*8+j+9; break; case 'P': w[wpi++]=i*8+j+9; break; case 'k': b[0]=i*8+j+9; break; case 'q': b[1]=i*8+j+9; break; case 'r': b[bri++]=i*8+j+9; break; case 'b': b[bbi++]=i*8+j+9; break; case 'n': b[bni++]=i*8+j+9; break; case 'p': b[bpi++]=i*8+j+9; break; } /* getchar();getchar(); */ } getchar(); /*getchar(); **/ } printf("White: "); y=0; print("K",0,0); print("Q",1,1); print("R",2,3); print("B",4,5); print("N",6,7); print("",8,15); printf("\nBlack: "); y=0; for (i=0; i<16; i++) { if (b[i]) { if (y++) printf(","); printf("%s%c%c", text[i], 'a'+(b[i]-9)%8, '1'+7-(b[i]-9)/8); } } printf("\n"); return 0; }