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("\n");
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("\n");
44     return 0;
45 } 
时间: 2024-10-16 18:15:04

poj 2996的相关文章

POJ 2996 Help Me with the Game

Help Me with the Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3292   Accepted: 2122 Description Your task is to read a picture of a chessboard position and print it in the chess notation. Input The input consists of an ASCII-art

POJ 2996 Help Me with the Game (模拟)

题目链接:http://poj.org/problem?id=2996 POJ训练计划中的模拟都是很棒的模拟,也很有代表性. 这个题讲的是给你一个国际象棋棋盘,写程序打印出黑白双方的棋子,以及棋子的坐标. 但是需要注意的国际棋盘的坐标问题 如下图这个国际棋盘 可以看到数字轴和字母轴的方向以及增减关系. 所以在这个题的统计的时候需要进行坐标转换,因为已经做过类似的方法了,这个也不是问题. 总之就是个模拟,代码如下: #include <stdio.h> #include <stdlib.h

POJ 2996 &amp; 2993 国际象棋布局 模拟

Description Your task is to read a picture of a chessboard position and print it in the chess notation. Input The input consists of an ASCII-art picture of a chessboard with chess pieces on positions described by the input. The pieces of the white pl

快速切题 poj 2996 Help Me with the Game 模拟暴力

Help Me with the Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3510   Accepted: 2251 Description Your task is to read a picture of a chessboard position and print it in the chess notation. Input The input consists of an ASCII-art

POJ题目分类推荐 (很好很有层次感)

著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递

poj 2993

跟poj 2996反过来了,这里比较麻烦的就是处理白棋和黑棋各棋子对应的位置 还有在最后打印棋盘式|,:,.的时候会有点繁琐(- - ACMer新手 ): 直接看代码吧: 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 char white[10][10],black[10][10]; 6 char s[]={"+---+---+---+-

POJ 刷题指南

OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递推. 构造法.(POJ 3295) 模拟法.(POJ 1068,POJ 2632,POJ 1573,POJ 2993,POJ 2996) 二

【转】POJ题目分类

初级:基本算法:枚举:1753 2965贪心:1328 2109 2586构造:3295模拟:1068 2632 1573 2993 2996图:最短路径:1860 3259 1062 2253 1125 2240最小生成树:1789 2485 1258 3026拓扑排序:1094二分图的最大匹配:3041 3020最大流的增广路算法:1459 3436数据结构:串:1035 3080 1936排序:2388 2299哈希表和二分查找等高效查找法:3349 3274 2151 1840 2002

Poj 2993 Emag eht htiw Em Pleh

1.Link: http://poj.org/problem?id=2993 2.Content: Emag eht htiw Em Pleh Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2801   Accepted: 1861 Description This problem is a reverse case of the problem 2996. You are given the output of the