POJ2996Help Me with the Game
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的更多相关文章
随机推荐
- C指针赋值
Node* p = A; Node* f = B; Node* t; t = p; t = f 本人试图让p指向B,但这样操作是不行的.如下图:只是改变了t的指向,p并没有变
- [转]高并发访问下避免对象缓存失效引发Dogpile效应
避免Redis/Memcached缓存失效引发Dogpile效应 Redis/Memcached高并发访问下的缓存失效时可能产生Dogpile效应(Cache Stampede效应). 推荐阅读:高并 ...
- javascript 数字字符串转为数字
var a="111"; comsole.log(a); //打印出来是个字符串类型 comsole.log(+a); //打印出来是个数字类型 comsole.log ...
- Android API Level与sdk版本对照表
API等级1: Android 1.0 API等级2: Android 1.1 Petit Four 花式小蛋糕 API等级3: Android 1.5 Cupcake 纸杯蛋糕 API等级4: An ...
- WPF中ListBox的项ListBoxItem被选中的时候Background变化
使用WPF 中ListBox,点击ListBoxItem的时候,自定义它的背景色,曾经在网上找了一些方法, 不是很理想,后来在StackOverflow上找到了,贴出代码和效果图: 效果图:
- Python-Day5 常用模块学习
一.模块介绍 通俗点说,就是把常用的一些功能单独放置到一个.py文件中,方便其他文件来调用,这样的一个文件可以称为一个模块. 模块分为三种: 自定义模块 内置标准模块(又称标准库) 开源模块 二.导入 ...
- 图解 CSS: 理解样式表的逻辑(转载)
原文:http://www.cnblogs.com/del/archive/2009/02/01/1382141.html 样式表可以是外部的.内联的或嵌入的; 链接外部样式文件一般是:<lin ...
- hdu 5690 2016"百度之星" - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5690 题意:m个数字全为x mod k ?= c;其中m <= 1010,0 < c,k ...
- JAVA的字节码技术
1.什么是字节码? 字节码 byteCode JVM能够解释执行的.java程序的归宿,但是从规范上来讲和Java已没有任何关系了.一些动态语言也可以编译成字节码在JVM上运行.字节码就相当于JVM上 ...
- FastLoad错误 — RDBMS error 2634
我们来看一下下面这条语句: BEGIN LOADING stu_flERRORFILES error_1, error_2; 如果此时已经存在error_1或error_2表,那么将会报错,信息如 ...