| 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