http://poj.org/problem?id=2996

又是一个大模拟题,表示做模拟题做的恶心,这个题主要是对数据的处理,从表格中将数据取出来再进行处理即可。

主要注意的点就是:1.KQRBN五个大写字母输出的顺序,且p不输出。

2.输出白色的时候,按列升序排,列相同时按行升序排,黑色的是按列降序排,列相同的时候按行升序排。

3.最后是不用输出逗号的,这个用一个标记变量标记一下就行。

 #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char cont[] = "KQRBNP";
char a,b,c;
char map[][] ;
int mark=;
void process(char ch,int colour,int &mark);
void print(int colour);
int main()
{
for(int i = ; i <= ; i++)
{
scanf("+---+---+---+---+---+---+---+---+");
getchar();//消除换行符
for(int j = ; j <= ; j++)
{
scanf("|%c%c%c",&a,&b,&c);
map[i][j] = b ;//把每个方块里的内容读到map数组里
}
getchar();//消除每一行最后一个|
getchar();//消除换行符
}
scanf("+---+---+---+---+---+---+---+---+");//输入最后一行
getchar();//消除换行符
print();//1代表输出白色
cout<<endl;
print();//2代表输出黑色
cout<<endl;
return ;
}
void print(int colour)
{
if(colour == )
cout<<"White:"<<' ';
else
cout<<"Black:"<<' ';
int mark = ;
for(int i = ; i < ; i++)
{
process(cont[i],colour,mark);
}
}
void process(char ch,int colour,int &mark)//这里的mark是一定要加地址符的,因为他的值是要改变的
{
//int markk = 1;
char sh = ch ;
if(colour == )
ch += ;
if(colour == )
{
for(int i = ; i <= ; i++)//黑色输出的时候是列降序,列相同时行升序
{
for(int j = ; j <= ; j++)
{
if(map[i][j] == ch)
{
if(mark)
mark = ;//控制逗号的输出
else
printf(",");
if(ch != 'p'&&ch!='P')//p的时候只输出位置
printf("%c",sh);
printf("%c%d",j+'a'-,-i);
}
}
}
} else
{
for(int i = ; i >= ; i--)//白色的输出的时候是列升序,列相同时行升序。
{
for(int j = ; j <= ; j++)
{
if(map[i][j] == ch)
{
if(mark)
mark = ;
else
printf(",");
if(ch != 'P'&&ch!='p')//等于p就不输出
printf("%c",sh);
printf("%c%d",j+'a'-,-i);
}
}
}
}
}

POJ2996Help Me with the Game的更多相关文章

随机推荐

  1. Linux 内存布局

         本文主要简介在X86体系结构下和在ARM体系结构下,Linux内存布局的概况,力求简单明了,不过多深入概念,多以图示的方式来记忆理解,一图胜万言. Technorati 标签: 内存 布局 ...

  2. 多线程更新已排序的Datagridview数据,造成数据错位

    多线程更新已排序的Datagridview数据,触发Datagridview的auto-sort时间,数据重新排序,造成后面更新数据的更新错误. 解决方法: 方法一.设置Datagridview的表头 ...

  3. ClickOnce证书签名

    打开Microsoft .NET Framework 的SDK命令提示,按以下步骤操作: 1.创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下: ...

  4. thymeleaf 局部变量、属性优先级、注释

    九.局部变量(local variable) 之前在th:each中遇到过局部变量 <tr th:each="prod : ${prods}"> ... </tr ...

  5. WordPress 主题开发 - (五)WordPress 主题模板及目录结构 待翻译

    While the most minimal of WordPress Themes really only need an index.php template and a style.css fi ...

  6. Zendframework 模块加载事件触发顺序。

    模块加载时事件触发的时间顺序: 0.loadModules(ModuleEvent::EVENT_LOAD_MODULES) 1.  loadModule.resolve(ModuleEvent::E ...

  7. SQL的自增列如何重置

    第一种方法:首先去除该列自增的标识,然后再修改id的值,成功修改后,再加上自增标识:如果不修改自增标识,会报错:“无法更新标识列”. 第二种方法:删除该自增列,而后重建一个自增列.

  8. Sybase ASE报错:server Error: 8242, Severity: 16, State: 1

    昨天上午,同事反映某系统在执行存储过程的过程中报错了,报错的信息异常如下: 05:00000:00009:2014/06/09 15:45:30.34 server Error: 8242, Seve ...

  9. 【img】 图片是怎么存储的

    用ue 打开一张图片,动动手脚,出现卡碟的画面效果. 可不可以用C#来做一个图片编辑器? 怎么做?路线怎么走? 稍后揭晓答案 根据实际操作获取类一些基础知识: 1. 文件是二进制存储的,为了便于查看编 ...

  10. C#的winform拼数字游戏

    C#的winform拼数字游戏 声明:阅读了别人的代码学习修改而来,增加了美观度和游戏乐趣.(作者出处忘了不好意思) 程序截图 关键代码 using System; using System.Coll ...