Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 3133 | Accepted: 2025 |
Description
Input
Output
Sample Input
+---+---+---+---+---+---+---+---+ |.r.|:::|.b.|:q:|.k.|:::|.n.|:r:| +---+---+---+---+---+---+---+---+ |:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.| +---+---+---+---+---+---+---+---+ |...|:::|.n.|:::|...|:::|...|:p:| +---+---+---+---+---+---+---+---+ |:::|...|:::|...|:::|...|:::|...| +---+---+---+---+---+---+---+---+ |...|:::|...|:::|.P.|:::|...|:::| +---+---+---+---+---+---+---+---+ |:P:|...|:::|...|:::|...|:::|...| +---+---+---+---+---+---+---+---+ |.P.|:::|.P.|:P:|...|:P:|.P.|:P:| +---+---+---+---+---+---+---+---+ |:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.| +---+---+---+---+---+---+---+---+
Sample Output
White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4 Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6
Source
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> char tem[35]; int a[20][35]; int p; void init() { int i,j; memset(a,0,sizeof(a)); for(i=1;i<=8;i++) { scanf("%s",tem); scanf("%s",tem); for(j=1;j<=8;j++) { switch(tem[(j-1)*4+2]) { case 'K': a[i][j]=1; break; case 'Q': a[i][j]=2; break; case 'R': a[i][j]=3; break; case 'B': a[i][j]=4; break; case 'N': a[i][j]=5; break; case 'P': a[i][j]=6; break; case 'k': a[i][j]=7; break; case 'q': a[i][j]=8; break; case 'r': a[i][j]=9; break; case 'b': a[i][j]=10; break; case 'n': a[i][j]=11; break; case 'p': a[i][j]=12; break; default:break; }; } } scanf("%s",tem); } void out(int hao,int x,int y) { int i,j; switch(hao) { case 1: if(p) printf(","); printf("K%c%d",'a'+y-1,9-x); break; case 2: if(p) printf(","); printf("Q%c%d",'a'+y-1,9-x); break; case 3: if(p) printf(","); printf("R%c%d",'a'+y-1,9-x); break; case 4: if(p) printf(","); printf("B%c%d",'a'+y-1,9-x); break; case 5: if(p) printf(","); printf("N%c%d",'a'+y-1,9-x); break; case 6: if(p) printf(","); printf("%c%d",'a'+y-1,9-x); break; case 7: if(p) printf(","); printf("K%c%d",'a'+y-1,9-x); break; case 8: if(p) printf(","); printf("Q%c%d",'a'+y-1,9-x); break; case 9: if(p) printf(","); printf("R%c%d",'a'+y-1,9-x); break; case 10: if(p) printf(","); printf("B%c%d",'a'+y-1,9-x); break; case 11: if(p) printf(","); printf("N%c%d",'a'+y-1,9-x); break; case 12: if(p) printf(","); printf("%c%d",'a'+y-1,9-x); break; default:break; }; } void search(int x) { int i,j; if(x<=6) { for(i=8;i>=1;i--) { for(j=1;j<=8;j++) { if(a[i][j]==x) { out(x,i,j); p=1; } } } } else { for(i=1;i<=8;i++) { for(j=1;j<=8;j++) { if(a[i][j]==x) { out(x,i,j); p=1; } } } } } void output() { int i,j; printf("White: "); p=0; for(i=1;i<=6;i++) search(i); printf("\n"); printf("Black: "); p=0; for(i=7;i<=12;i++) search(i); printf("\n"); } int main() { int i,j; init(); output(); return 0; }