• poj 2996


    提示:很烦很简单的国际象棋棋盘模拟,输入比较麻烦而已

    输出时:

    1、不论黑白,KQRBN P均是依次输出,强制大写,但不输出“P”,只输出其坐标

    2、对白棋的位置,小行优先大行输出(行的数字越小则优先)同行则按列的顺序(a~h)

    3、对黑棋的位置,大行优先小行输出(行的数字越大则优先)同行则按列的顺序(a~h)

    4、从2、3点可以看出,黑棋总是先被输入,白棋总是后输入,即黑棋总在棋盘上方,白棋总在棋盘下方,所以输入完成后,对于黑色棋子只需要按类型次序输出,同类型棋子的顺序就是输入的顺序;而白色棋子要考虑同类型棋子之间的排序,而同类型棋子之间又仅需要考虑不同行棋子之间的排序,同一行棋子的排序就是输入顺序

    5、棋子可能不齐全,不存在的棋子不输出,用标记解决

    6、最后的棋子后面不带逗号,要找出最后的棋子 

    题意转自  優YoU http://user.qzone.qq.com/289065406/blog/1299148268

    根据以上信息可以直接贴代码了

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 char white[]={'K','Q','R','B','N','P'};
     5 char black[]={'k','q','r','b','n','p'};
     6 char goal[10][10];
     7 int main()
     8 {
     9     char a,b,c,d;
    10     char s[100];
    11     gets(s);
    12     for(int j,i=7;i>=0;--i){
    13         getchar();
    14         for(j=0;j<=7;++j){
    15             scanf("%c%c%c%c",&a,&b,&c,&d);
    16             goal[i][j]=b;
    17         }
    18         getchar();gets(s);
    19     }
    20      printf("White: ");
    21      int flag=0;
    22     for(int k=0;k<6;++k)
    23         for(int j,i=0;i<=7;++i)
    24             for(j=0;j<=7;++j)
    25                  if(goal[i][j]==white[k]){
    26                      if(flag)    printf(",");
    27                      if(goal[i][j]!='P')    printf("%c%c%d",white[k],j+'a',i+1);
    28                      else    printf("%c%d",j+'a',i+1);
    29                      flag++;
    30                  }
    31                  printf("
    ");
    32     flag=0;
    33     printf("Black: ");
    34     for(int k=0;k<6;++k)
    35         for(int j,i=7;i>=0;--i)
    36             for(j=0;j<=7;++j)
    37                 if(goal[i][j]==black[k]){
    38                         if(flag)    printf(",");
    39                      if(goal[i][j]!='p')    printf("%c%c%d",white[k],j+'a',i+1);
    40                      else    printf("%c%d",j+'a',i+1);
    41                      flag++;
    42                 }
    43                 printf("
    ");
    44     return 0;
    45 } 
  • 相关阅读:
    【7.19 graphshortestpath graphallshortestpaths函数】matlab 求最短路径函数总结
    【7.18 灾情巡视路线代码】
    【7.18总结】KM算法
    【7.17总结】 匈牙利算法(二分图最大匹配)
    动态规划 多段图最短路 有向图
    matlab 单元最短路 Dijkstra算法 无向图
    hdu 3536【并查集】
    博弈随笔
    AtCoder Regular Contest 094 D Worst Case【思维题】
    CODE FESTIVAL 2017 qual B C 3 Steps(补题)
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5118086.html
Copyright © 2020-2023  润新知