Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 3210 | Accepted: 2071 |
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
/*题意:给出 棋盘 情况 输出 白棋 和 黑棋在 棋盘上的坐标 白棋为大写字母 黑棋为小写字母 棋盘 左下点为原点(1,a) 输出 是 按照KQRBNP的顺序 白棋 输出 行小的 行相同按列小的 先输出 黑棋 行大的先输出 */ #include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct point { int x,y,p; char d; }w[65],f[65]; bool cmp1(point a,point b) //黑 { if(a.p!=b.p) return a.p<b.p; else if(a.x!=b.x) return a.x>b.x; else return a.y<b.y; } bool cmp2(point a,point b) //白 { if(a.p!=b.p) return a.p<b.p; else if(a.x!=b.x) return a.x<b.x; else return a.y<b.y; } int solve(char c) { if(c=='K'||c=='k') return 1; else if(c=='Q'||c=='q') return 2; else if(c=='R'||c=='r') return 3; else if(c=='B'||c=='b') return 4; else if(c=='N'||c=='n') return 5; else return 6; } int main() { char s[105],a,b,c; int write=0,black=0; for(int i=8;i>=1;i--) { gets(s); for(int j=0;j<8;j++) { getchar(); scanf("%c%c%c",&a,&b,&c); if(b=='.'||b==':') continue; if(b>='a'&&b<='z') //黑 { w[write].x=i; w[write].y=j; w[write].d=b-32; w[write++].p=solve(b); } else //白 { f[black].x=i; f[black].y=j; f[black].d=b; f[black++].p=solve(b); } } getchar();getchar(); } sort(w,w+write,cmp1); sort(f,f+black,cmp2); gets(s); printf("White: "); for(int i=0;i<black;i++) { if(f[i].d!='P') printf("%c",f[i].d); printf("%c%d%c",f[i].y+'a',f[i].x,(i==black-1)?'\n':','); } printf("Black: "); for(int i=0;i<write;i++) { if(w[i].d!='P') printf("%c",w[i].d); printf("%c%d%c",w[i].y+'a',w[i].x,(i==write-1)?'\n':','); } return 0; }
poj-2996 Help Me with the Game,布布扣,bubuko.com
poj-2996 Help Me with the Game
原文:http://blog.csdn.net/u012773338/article/details/32345811