Emag eht htiw Em Pleh(POJ 2993)、Help Me with the Game(POJ 2996)模拟题

Emag eht htiw Em Pleh(POJ 2993)

~题目链接~

http://poj.org/problem?id=2993

输入

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

结果

+---+---+---+---+---+---+---+---+
|.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.|
+---+---+---+---+---+---+---+---+
图示:white:大写字母,顺序从下往上
black:小写字母,顺序从上往下


 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<ctype.h>
 5 
 6 char map[10][10];
 7 
 8 int main()
 9 {
10     char str[100];
11     int i,j;
12     memset(map,0,sizeof(map));
13     for(i=0; i<2; i++)
14     {
15         memset(str,0,sizeof(str));
16         gets(str);
17         if(str[0]=='W')
18         {
19             int x,y;
20             int n=strlen(str);
21             for(j=7; j<n; j++)
22             {
23                 if(isupper(str[j]))
24                 {
25                     char st=str[j];
26                     y=str[++j]-'a';
27                     x=8-str[++j]+'0';
28                     map[x][y]=st;
29                 }
30                 else if(islower(str[j]))
31                 {
32                     y=str[j++]-'a';
33                     x=8-str[j++]+'0';
34                     map[x][y]='P';
35                 }
36             }
37         }
38         else if(str[0]=='B')
39         {
40             int x,y;
41             int n=strlen(str);
42             for(j=7; j<n; j++)
43             {
44                 if(isupper(str[j]))
45                 {
46                     char st=str[j]-'A'+'a';
47                     y=str[++j]-'a';
48                     x=8-str[++j]+'0';
49                     map[x][y]=st;
50                 }
51                 else if(islower(str[j]))
52                 {
53                     y=str[j++]-'a';
54                     x=8-str[j++]+'0';
55                     map[x][y]='p';
56                 }
57             }
58         }
59     }
60     for(i=0; i<8; i++)
61     {
62         printf("+---+---+---+---+---+---+---+---+\n");
63         for(j=0; j<8; j++)
64         {
65             int flag;
66             flag=(i+j)%2;
67             if(flag)
68                 printf("|:");
69             else
70                 printf("|.");
71             if(map[i][j])
72                 printf("%c",map[i][j]);
73             else
74             {
75                 if(flag)
76                     printf(":");
77                 else
78                     printf(".");
79             }
80             if(flag)
81                 printf(":");
82             else
83                 printf(".");
84 
85         }
86         printf("|\n");
87     }
88     printf("+---+---+---+---+---+---+---+---+\n");
89     return 0;
90 }
View Code

Help Me with the Game(POJ 2996)模拟题

~题目链接~

http://poj.org/problem?id=2996

输入

+---+---+---+---+---+---+---+---+
|.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.|
+---+---+---+---+---+---+---+---+

结果

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
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<ctype.h>
 5 
 6 int flag;
 7 char s[40],map[8][8];
 8 
 9 void find1(char str)
10 {
11     for(int i=7; i>=0; i--)
12         for(int j=0; j<8; j++)
13             if(map[i][j]==str)
14             {
15                 if(!flag)
16                     flag=1;
17                 else
18                     printf(",");
19                 if(str!='P')
20                     printf("%c",str);
21                 printf("%c%d",j+'a',8-i);
22             }
23 }
24 
25 void find2(char str)
26 {
27     for(int i=0; i<8; i++)
28         for(int j=0; j<8; j++)
29             if(map[i][j]==str)
30             {
31                 if(!flag)
32                     flag=1;
33                 else
34                     printf(",");
35                 if(str!='p')
36                     printf("%c",toupper(str));
37                 printf("%c%d",j+'a',8-i);
38             }
39 }
40 
41 int main()
42 {
43     gets(s);
44     for(int i=0; i<8; i++)
45     {
46         gets(s);
47         for(int j=0; j<8; j++)
48         {
49             if(isalpha(s[4*(j+1)-2]))
50                 map[i][j]=s[4*(j+1)-2];
51         }
52         gets(s);
53     }
54     flag=0;
55     printf("White: ");
56     find1('K');find1('Q');find1('R');find1('B');find1('N');find1('P');
57     printf("\n");
58     flag=0;
59     printf("Black: ");
60     find2('k');find2('q');find2('r');find2('b');find2('n');find2('p');
61     printf("\n");
62     return 0;
63 }
View Code

 

 

posted @ 2013-08-07 16:10  Locke_Q  阅读(202)  评论(0编辑  收藏  举报