码迷,mamicode.com
首页 > 其他好文 > 详细

POJ2996 Help Me with the Game 大模拟

时间:2016-07-20 17:32:17      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

http://blog.csdn.net/AXuan_K/article/details/37922039

题意:给定一个棋盘,输出个个棋子的位置。行数字表示,列字母表示。

注意:1、大写字母表示白色,小写字母表示黑色,表中的标点并没什么卵用。

2、该棋盘的排序和矩阵的行相反,即矩阵最后一行为棋盘第一行。

3、白棋按照行和列的升序排列。

4、黑棋行按照行降序排列,列升序排序。

5、最后的输出不带标点,列的字母为大写。

思路:数组存储棋子的类型,白棋按照从最后一行到第一行开始扫,黑棋按照从第一行到最后一行扫。如果存在棋子,输出其位置。

技术分享
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 char a[6]={K,Q,R,B,N,P};
 7 char b[6]={k,q,r,b,n,p};
 8 char map[40][40];
 9 main()
10 {
11     int i,j,s1=0,s2=0,k;
12     for(i=1;i<=17;i++)
13     {
14         for(j=1;j<=33;j++)
15         {
16             cin>>map[i][j];
17             if(map[i][j]==P)
18             s1++;
19             if(map[i][j]==p)
20             s2++;
21         }
22     }
23     printf("White: ");
24     for(k=0;k<6;k++)
25     {
26         for(i=17;i>=1;i--)
27         {
28             for(j=1;j<=33;j++)
29             {
30                 if(k<=4&&i%2==0&&j%4==3)
31                 {
32                     if(map[i][j]==a[k])
33                     {
34                         printf("%c%c%d,",a[k],a+(j+1)/4-1,9-i/2);
35                     }
36                 }
37                 if(k==5&&i%2==0&&j%4==3)
38                 {
39                     if(map[i][j]==a[k])
40                     {
41                         s1--;
42                         if(s1==0)
43                         printf("%c%d\n",a+(j+1)/4-1,9-i/2);
44                         else
45                         printf("%c%d,",a+(j+1)/4-1,9-i/2);
46                     }
47                 }
48             }
49         }
50     }
51     printf("Black: ");
52         for(k=0;k<6;k++)
53     {
54         for(i=1;i<=17;i++)
55         {
56             for(j=1;j<=33;j++)
57             {
58                 if(k<=4&&i%2==0&&j%4==3)
59                 {
60                     if(map[i][j]==b[k])
61                     {
62                         printf("%c%c%d,",a[k],a+(j+1)/4-1,9-i/2);
63                     }
64                 }
65                 if(k==5&&i%2==0&&j%4==3)
66                 {
67                     if(map[i][j]==b[k])
68                     {
69                         s2--;
70                         if(s2==0)
71                         printf("%c%d\n",a+(j+1)/4-1,9-i/2);
72                         else
73                         printf("%c%d,",a+(j+1)/4-1,9-i/2);
74                     }
75                 }
76             }
77         }
78     }
79 }
View Code

 

POJ2996 Help Me with the Game 大模拟

标签:

原文地址:http://www.cnblogs.com/CrazyBaby/p/5688931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!