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. mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

    继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同 ...

  2. 【风马一族_git_github】gitGui与github的SSH

    权限校验 首先,您的数据保存在远端服务器一份,服务器需要对您的身份识别.一段RSA加密字符串. 启动GUI,菜单-帮助,[Step1-创建密钥]Generate SSH KEY 步骤一: 步骤二: 步 ...

  3. 《samba搭建win客户端和linux客户端的区别》

    samba服务的搭建 客户的使用系统的不同也导致测试结果的不同. linux系统客户端: security = user or share smbclient -L //192.168.7.113/w ...

  4. 《Apache数据传输加密、证书的制作》——涉及HTTPS协议

    首先了解http和https: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. HTTPS和HTTP的区别: http是超文本传输协议,信息是明 ...

  5. ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值

    相关知识: 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对 ...

  6. CSS简写及如何优化技巧

    CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读. 下面介绍常见的CSS简写规则: ...

  7. file与 byte[] 互转

    byte 转file String filepath="D:\\"+getName();          File file=new File(filepath);        ...

  8. mongodb的常用操作(二)

    继续mongodb的学习: 9.mongodb条件查询 假设有user集合,里面结构如下:{ "_id" : ObjectId("52ab35d281181f853264 ...

  9. 笨办法学 Python (第三版)(转载)

    笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html   摘自https://learn-python ...

  10. 【转载】Powershell在世纪互联Office365中批量将用户添加到组

    $NewUserPath = ".\Office365AddUserToGroup.csv" $NewUsers = import-csv $NewUserPath foreach ...