Description
Input
Output
Sample Input
White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6
Sample Output
+---+---+---+---+---+---+---+---+|.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.|+---+---+---+---+---+---+---+---+代码:
#includepoj2996:#include #include using namespace std;char q[10],w[100];char e[10],r[100];char white[12]= {'K','Q','R','B','N','P'};char black[12]= {'k','q','r','b','n','p'};char map1[18][35];int s1,s2;int main(){ int i,j; for(i=1; i<=17; i++) //初始化地图 for(j=1; j<=33; j++) { if(i%2==1&&j%4==1) map1[i][j]='+'; else if(i%2==1) map1[i][j]='-'; else if(i%2==0&&j%4==1) map1[i][j]='|'; else if(i%4==2&&(double)(j%8)/4<=1&&j%8!=0) map1[i][j]='.'; else if(i%4==0&&((double)(j%8)/4>1||j%8==0)) map1[i][j]='.'; else map1[i][j]=':'; } for(int k=1; k<=2; k++) //两行输入 { scanf("%s%s",q,w); s1=strlen(w); if(q[0]=='W') { for(i=0; i<=5; i++) for(j=0; j<=s1; j++) { if(w[j]==white[i]) map1[2*(9-w[j+2]+'0')][4*(w[j+1]-'a')+3]=white[i]; if(w[j]==','&&w[j+1]>96) map1[2*(9-w[j+2]+'0')][4*(w[j+1]-'a')+3]='P'; } } if(q[0]=='B') { for(i=0; i<=5; i++) for(j=0; j<=s1; j++) { if(w[j]==white[i]) map1[2*(9-w[j+2]+'0')][4*(w[j+1]-'a')+3]=black[i]; if(w[j]==','&&w[j+1]>96) map1[2*(9-w[j+2]+'0')][4*(w[j+1]-'a')+3]='p'; } } } for(i=1; i<=17; i++) { for(j=1; j<=33; j++) cout<
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,e4Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6代码:
#include#include using namespace std;char black[6]= {'K','Q','R','B','N','P'};char white[6]= {'k','q','r','b','n','p'};int main(){ int s1,s2; int i,j,k; char map1[18][34]; s1=s2=0; for(i=1; i<=17; i++) for(j=1; j<=33; j++) { cin>>map1[i][j]; if(map1[i][j]=='p') //这个是为了不输出最后的那个逗号。。
。 s1++; if(map1[i][j]=='P') s2++; } cout<<"White: "; for(k=0; k<6; k++) for(i=17; i>=1; i--) for(j=1; j<=33; j++) { if(i%2==0&&j%4==3&&k<=4) if(map1[i][j]==black[k]) { printf("%c%c%d,",black[k],'a'+(j+1)/4-1,9-i/2); } if(k==5&&i%2==0&&j%4==3) if(map1[i][j]=='P') { s1--; if(s1==0) { printf("%c%d\n",'a'+(j+1)/4-1,9-i/2); continue; } printf("%c%d,",'a'+(j+1)/4-1,9-i/2); } } cout<<"Black: "; for(k=0; k<6; k++) for(i=1; i<=17; i++) for(j=1; j<=33; j++) { if(i%2==0&&j%4==3&&k<=4) if(map1[i][j]==white[k]) { printf("%c%c%d,",black[k],'a'+(j+1)/4-1,9-i/2); } if(k==5&&i%2==0&&j%4==3) if(map1[i][j]=='p') { s2--; if(s2==0) { printf("%c%d\n",'a'+(j+1)/4-1,9-i/2); continue; } printf("%c%d,",'a'+(j+1)/4-1,9-i/2); } } return 0; }
基本渣 这样的模拟题只能用时间来堆TAT