zoukankan      html  css  js  c++  java
  • poj2996(Help Me with the Game)

    题目大意:

        同2993、 这题是根据棋盘,分别输出棋子的位置。

    解题思路:

        模拟再模拟、我写了8000+B  你能信?我是多有耐心呢!

    代码:

      1 #include <algorithm>
      2 #include <iostream>
      3 #include <sstream>
      4 #include <cstdlib>
      5 #include <cstring>
      6 #include <cstdio>
      7 #include <string>
      8 #include <bitset>
      9 #include <vector>
     10 #include <queue>
     11 #include <stack>
     12 #include <cmath>
     13 #include <list>
     14 #include <map>
     15 #include <set>
     16 using namespace std;
     17 /***************************************/
     18 #define ll long long
     19 #define int64 __int64
     20 /***************************************/
     21 const int INF = 0x7f7f7f7f;
     22 const double eps = 1e-8;
     23 const double PIE=acos(-1.0);
     24 const int dx[]= {0,-1,0,1};
     25 const int dy[]= {1,0,-1,0};
     26 const int fx[]= {-1,-1,-1,0,0,1,1,1};
     27 const int fy[]= {-1,0,1,-1,1,-1,0,1};
     28 /***************************************/
     29 void openfile()
     30 {
     31     freopen("data.in","rb",stdin);
     32     freopen("data.out","wb",stdout);
     33 }
     34 /**********************华丽丽的分割线,以上为模板部分*****************/
     35 
     36 int main()
     37 {
     38     /* char board[18][35]=
     39      {
     40          "",
     41          " +---+---+---+---+---+---+---+---+",
     42          " |:::|...|:::|...|:::|...|:::|...|",
     43          " +---+---+---+---+---+---+---+---+",
     44          " |...|:::|...|:::|...|:::|...|:::|",
     45          " +---+---+---+---+---+---+---+---+",
     46          " |:::|...|:::|...|:::|...|:::|...|",
     47          " +---+---+---+---+---+---+---+---+",
     48          " |...|:::|...|:::|...|:::|...|:::|",
     49          " +---+---+---+---+---+---+---+---+",
     50          " |:::|...|:::|...|:::|...|:::|...|",
     51          " +---+---+---+---+---+---+---+---+",
     52          " |...|:::|...|:::|...|:::|...|:::|",
     53          " +---+---+---+---+---+---+---+---+",
     54          " |:::|...|:::|...|:::|...|:::|...|",
     55          " +---+---+---+---+---+---+---+---+",
     56          " |...|:::|...|:::|...|:::|...|:::|",
     57          " +---+---+---+---+---+---+---+---+"
     58      };  */
     59     char board[18][35];
     60     memset(board,0,sizeof(board));
     61     int i,j;
     62     int num1=0,num2=0;
     63     int numK=0,numQ=0,numR=0,numB=0,numP=0,numN=0;
     64     int numk=0,numq=0,numr=0,numb=0,nump=0,numn=0;
     65     for(i=17; i>0; i--)
     66     {
     67         for(j=1; j<=33; j++)
     68         {
     69             scanf("%c",&board[i][j]);
     70             if (board[i][j]=='K')
     71                 numK++;
     72             if (board[i][j]=='Q')
     73                 numQ++;
     74             if (board[i][j]=='R')
     75                 numR++;
     76             if (board[i][j]=='P')
     77                 numP++;
     78             if (board[i][j]=='N')
     79                 numN++;
     80             if (board[i][j]=='k')
     81                 numk++;
     82             if (board[i][j]=='q')
     83                 numq++;
     84             if (board[i][j]=='r')
     85                 numr++;
     86             if (board[i][j]=='p')
     87                 nump++;
     88             if (board[i][j]=='n')
     89                 numn++;
     90             if (board[i][j]=='B')
     91                 numB++;
     92             if (board[i][j]=='b')
     93                 numb++;
     94             if (board[i][j]>='A'&&board[i][j]<='Z')
     95                 num1++;
     96             if (board[i][j]>='a'&&board[i][j]<='z')
     97                 num2++;
     98         }
     99         getchar();
    100     }
    101     int k;
    102     int ce;
    103     char x,y;
    104     int K=0,Q=0,R=0,B=0,N=0,P=0;
    105     printf("White: ");
    106     for(i=1; i<=num1; i++)
    107         for(j=1; j<=17; j++)
    108         {
    109             ce=1;
    110             for(k=1; k<=33; k++)
    111             {
    112                 if (board[j][k]=='K')
    113                 {
    114                     x=j/2+'0';
    115                     y=(k-3)/4+'a';
    116                     K++;
    117                     ce=0;
    118 
    119                     printf("%c%c%c,",board[j][k],y,x);
    120                     board[j][k]='.';
    121                     break;
    122                 }
    123                 if (board[j][k]=='Q'&&K==numK)
    124                 {
    125                     x=j/2+'0';
    126                     y=(k-3)/4+'a';
    127                     Q++;
    128                     ce=0;
    129                     printf("%c%c%c,",board[j][k],y,x);
    130                     board[j][k]='.';
    131                     break;
    132                 }
    133                 if (board[j][k]=='R'&&Q==numQ)
    134                 {
    135                     x=j/2+'0';
    136                     y=(k-3)/4+'a';
    137                     R++;
    138                     ce=0;
    139 
    140                     printf("%c%c%c,",board[j][k],y,x);
    141                     board[j][k]='.';
    142                     break;
    143                 }
    144                 if (board[j][k]=='B'&&R==numR)
    145                 {
    146                     x=j/2+'0';
    147                     y=(k-3)/4+'a';
    148                     B++;
    149                     ce=0;
    150 
    151                     printf("%c%c%c,",board[j][k],y,x);
    152                     board[j][k]='.';
    153                     break;
    154                 }
    155                 if (board[j][k]=='N'&&B==numB)
    156                 {
    157                     x=j/2+'0';
    158                     y=(k-3)/4+'a';
    159                     N++;
    160                     ce=0;
    161 
    162                     printf("%c%c%c,",board[j][k],y,x);
    163                     board[j][k]='.';
    164                     break;
    165                 }
    166                 if (board[j][k]=='P'&&N==numN)
    167                 {
    168                     x=j/2+'0';
    169                     y=(k-3)/4+'a';
    170                     ce=0;
    171                     P++;
    172                     if (P<numP)
    173                         printf("%c%c,",y,x);
    174                     else
    175                         printf("%c%c
    ",y,x);
    176                     board[j][k]='.';
    177                     break;
    178                 }
    179             }
    180             if (!ce)
    181                 break;
    182         }
    183     int k1=0,q=0,r=0,b=0,n=0,p=0;
    184     printf("Black: ");
    185     for(i=1; i<=num2; i++)
    186         for(j=17; j>=1; j--)
    187         {
    188             ce=1;
    189             for(k=1; k<=33; k++)
    190             {
    191                 if (board[j][k]=='k')
    192                 {
    193                     x=j/2+'0';
    194                     y=(k-3)/4+'a';
    195                     k1++;
    196                     ce=0;
    197 
    198                     printf("%c%c%c,",board[j][k]-32,y,x);
    199                     board[j][k]='.';
    200                     break;
    201                 }
    202                 if (board[j][k]=='q'&&k1==numk)
    203                 {
    204                     x=j/2+'0';
    205                     y=(k-3)/4+'a';
    206                     q++;
    207                     ce=0;
    208 
    209                     printf("%c%c%c,",board[j][k]-32,y,x);
    210                     board[j][k]='.';
    211                     break;
    212                 }
    213                 if (board[j][k]=='r'&&q==numq)
    214                 {
    215                     x=j/2+'0';
    216                     y=(k-3)/4+'a';
    217                     r++;
    218                     ce=0;
    219 
    220                     printf("%c%c%c,",board[j][k]-32,y,x);
    221                     board[j][k]='.';
    222                     break;
    223                 }
    224                 if (board[j][k]=='b'&&r==numr)
    225                 {
    226                     x=j/2+'0';
    227                     y=(k-3)/4+'a';
    228                     b++;
    229                     ce=0;
    230 
    231                     printf("%c%c%c,",board[j][k]-32,y,x);
    232                     board[j][k]='.';
    233                     break;
    234                 }
    235                 if (board[j][k]=='n'&&b==numb)
    236                 {
    237                     x=j/2+'0';
    238                     y=(k-3)/4+'a';
    239                     n++;
    240                     ce=0;
    241 
    242                     printf("%c%c%c,",board[j][k]-32,y,x);
    243                     board[j][k]='.';
    244                     break;
    245                 }
    246                 if (board[j][k]=='p'&&n==numn)
    247                 {
    248                     x=j/2+'0';
    249                     y=(k-3)/4+'a';
    250                     ce=0;
    251                     p++;
    252                     if (p<nump)
    253                         printf("%c%c,",y,x);
    254                     else
    255                         printf("%c%c
    ",y,x);
    256                     board[j][k]='.';
    257                     break;
    258                 }
    259             }
    260             if (!ce)
    261                 break;
    262         }
    263     return 0;
    264 }
    265 /*
    266         "+---+---+---+---+---+---+---+---+",
    267         "|:::|...|:::|...|:::|...|:::|...|",
    268         "+---+---+---+---+---+---+---+---+",
    269         "|...|:::|...|:::|...|:::|...|:::|",
    270         "+---+---+---+---+---+---+---+---+",
    271         "|:::|...|:::|...|:::|...|:::|...|",
    272         "+---+---+---+---+---+---+---+---+",
    273         "|...|:::|...|:::|...|:::|...|:::|",
    274         "+---+---+---+---+---+---+---+---+",
    275         "|:::|...|:::|...|:::|...|:::|...|",
    276         "+---+---+---+---+---+---+---+---+",
    277         "|...|:::|...|:::|...|:::|...|:::|",
    278         "+---+---+---+---+---+---+---+---+",
    279         "|:::|...|:::|...|:::|...|:::|...|",
    280         "+---+---+---+---+---+---+---+---+",
    281         "|...|:::|...|:::|...|:::|...|:::|",
    282         "+---+---+---+---+---+---+---+---+",
    283 */
    View Code
    屌丝终有逆袭日,*******。
  • 相关阅读:
    学习两个Python不常用的语法
    使用uwsgi在centos7上部署Flask在线Web服务
    redis server学习002
    上传至gitlab—— 本地git出现fatal: The current branch develop has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin develop 的问题
    数据库脏数据——数据库中的并发操作带来的一系列问题
    error: failed to push some refs to 'git@github.com:Sirxy/flask_jwt_demo.git'
    redis server学习001
    【解决方案】麒麟v10,更新yum源
    【解决方案】github图片加载不出来
    linux c程序高cpu,排查记录
  • 原文地址:https://www.cnblogs.com/ZhaoPengkinghold/p/3760553.html
Copyright © 2011-2022 走看看