poj 2993

跟poj 2996反过来了,这里比较麻烦的就是处理白棋和黑棋各棋子对应的位置

还有在最后打印棋盘式|,:,.的时候会有点繁琐(- - ACMer新手 );

直接看代码吧;

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream> 
 4 using namespace std;
 5 char white[10][10],black[10][10];
 6 char s[]={"+---+---+---+---+---+---+---+---+"};
 7 int main()
 8 {    
 9     memset(white,'0',sizeof(white));
10     memset(black,'0',sizeof(black));
11     char x[50],y[50];
12     gets(x);
13     for(int i=0;i<strlen(x);++i){
14         if((x[i]=='K'||x[i]=='Q'||x[i]=='R'||x[i]=='B'||x[i]=='N')&&i>5)
15             white[x[i+2]-'0'][x[i+1]-'a'+1]=x[i],i+=3;
16         if((x[i]>='a'&&x[i]<='h')&&i>5)
17             white[x[i+1]-'0'][x[i]-'a'+1]='P',i+=2;
18     }
19     gets(y);
20     for(int i=0;i<strlen(y);++i){
21         if((y[i]=='K'||y[i]=='Q'||y[i]=='R'||y[i]=='B'||y[i]=='N')&&i>5)
22             black[y[i+2]-'0'][y[i+1]-'a'+1]=y[i]-'A'+'a',i+=3;
23         if((y[i]>='a'&&y[i]<='h')&&i>5)
24             black[y[i+1]-'0'][y[i]-'a'+1]='p',i+=2;
25     }
26     cout << s << endl;
27     for(int i=8;i>0;--i){
28         cout << "|";
29         for(int j=1;j<=8;++j){
30             if(i%2==0){
31                 if(j%2==1){
32                     cout << ".";
33                 if(white[i][j]!='0')    cout << white[i][j] << ".|";
34                 else if(black[i][j]!='0')    cout << black[i][j] << ".|";
35                 else    cout << "..|";
36                 }
37                 else if(j%2==0){
38                     cout << ":";
39                     if(white[i][j]!='0')    cout << white[i][j] << ":|";
40                     else if(black[i][j]!='0')    cout << black[i][j] << ":|";
41                     else    cout << "::|";
42                 }
43             }
44             else{
45                     if(j%2==1){
46                         cout << ":";
47                     if(white[i][j]!='0')    cout << white[i][j] << ":|";
48                     else if(black[i][j]!='0')    cout << black[i][j] << ":|";
49                     else    cout << "::|";
50                     }
51                     else{
52                         cout << ".";
53                         if(white[i][j]!='0')    cout << white[i][j] << ".|";
54                         else if(black[i][j]!='0')    cout << black[i][j] << ".|";
55                         else    cout << "..|";
56                     }
57             }
58         }
59         cout << endl << s << endl;
60     }    
61 } 

 

posted @ 2016-01-10 11:27  我不萌、我要高冷  阅读(292)  评论(0编辑  收藏  举报