首页 > 其他 > 详细

poj 2993

时间:2016-01-10 11:36:55      阅读:124      评论:0      收藏:0      [点我收藏+]

跟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 } 

 

poj 2993

原文:http://www.cnblogs.com/sasuke-/p/5118091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!