/*排序函数要写对,优先级:K,Q,R,B,N,P
白色的:如果优先级一样,那么按照行数大的优先,如果行数一样,那么列数小的优先
黑色的:如果优先级一样,那么按照行数小的优先,如果行数一样,那么列数小的优先
第一个在左下脚,向上数*/
#include<stdio.h>
#include<string.h>
#include<algoritm>
using namespace std;
struct point
{
int i,j;
char c;
int num;
}p[];
int cmp(const point a,const point b)
{
if(a.num==b.num)
{
if(a.i==b.i) return a.j<b.j;
return a.i>b.i;
}
return a.num>b.num;
}
int cmp1(const point a,const point b)
{
if(a.num==b.num)
{
if(a.i==b.i) return a.j<b.j;
return a.i<b.i;
}
return a.num>b.num;
}
int chack(char c)
{
if(c=='K' || c=='k') return ;
if(c=='Q' || c=='q') return ;
if(c=='R' || c=='r') return ;
if(c=='B' || c=='b') return ;
if(c=='N' || c=='n') return ;
if(c=='P' || c=='p') return ;
}
int find(int n)
{
if(n==) return 'a';
if(n==) return 'b';
if(n==) return 'c';
if(n==) return 'd';
if(n==) return 'e';
if(n==) return 'f';
if(n==) return 'g';
if(n==) return 'h';
}
int ok(int n)
{
if(n==) return ;
if(n==) return ;
if(n==) return ;
if(n==) return ;
if(n==) return ;
if(n==) return ;
if(n==) return ;
if(n==) return ;
}
int main()
{
int i,j,k,n,m;
char s[][];
memset(p,,sizeof(p));
for(i=;i<=;i++)
{
gets(s[i]);
}
k=;
for(i=;i>=;i--)
{
m=strlen(s[i]);
for(j=;j<m;j++)
{
if(s[i][j]=='K' || s[i][j]=='Q' || s[i][j]=='R' || s[i][j]=='B'
|| s[i][j]=='N' || s[i][j]=='P')
{ p[k].i=i;
p[k].j=j;
p[k].c=s[i][j];
p[k++].num=chack(s[i][j]);
}
}
} sort(p,p+k,cmp);
printf("White: ");
for(j=;j<k;j++)
{
if(j== && p[j].c=='P' )
{
printf("%c%d",find(p[j].j),ok(p[j].i));
}
else if(j==) printf("%c%c%d",p[j].c,find(p[j].j),ok(p[j].i));
else
{
if(p[j].c=='P') printf(",%c%d",find(p[j].j),ok(p[j].i));
else printf(",%c%c%d",p[j].c,find(p[j].j),ok(p[j].i));
}
}
printf("\n");
for(i=;i<k;i++)
{
p[i].i=;
p[i].j=;
p[i].num=;
p[i].c='\0';
}
k=;
for(i=;i<=;i++)
{
m=strlen(s[i]);
for(j=;j<m;j++)
{
if(s[i][j]=='k' || s[i][j]=='q' || s[i][j]=='r' || s[i][j]=='b'
|| s[i][j]=='n' || s[i][j]=='p')
{ p[k].i=i;
p[k].j=j;
p[k].c=s[i][j];
p[k++].num=chack(s[i][j]);
}
}
}
sort(p,p+k,cmp1);
printf("Black: ");
for(j=;j<k;j++)
{
if(j== && p[j].c=='p' )
{
printf("%c%d",find(p[j].j),ok(p[j].i));
}
else if(j==) printf("%c%c%d",p[j].c-,find(p[j].j),ok(p[j].i));
else
{
if(p[j].c=='p') printf(",%c%d",find(p[j].j),ok(p[j].i));
else printf(",%c%c%d",p[j].c-,find(p[j].j),ok(p[j].i));
}
}
printf("\n");
return ;
}
05-17 02:06