zoukankan      html  css  js  c++  java
  • POJ2996 Help Me with the Game 大模拟

    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
    ",'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
    ",'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
  • 相关阅读:
    镜像转换:img转换为iso
    IDM的谷歌插件安装
    Adams和UG许可证冲突问题
    步进电机驱动总结
    比赛官网收集
    树莓派安装pip包管理工具
    光固化打印后处理过程
    Arduino 串口库函数
    六足蜘蛛机器人行走控制
    温湿度传感器DHT11程序示例
  • 原文地址:https://www.cnblogs.com/CrazyBaby/p/5688931.html
Copyright © 2011-2022 走看看