码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 2993 Emag eht htiw Em Pleh 模拟

时间:2014-07-22 14:34:04      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:poj   c++   

Emag eht htiw Em Pleh
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2661   Accepted: 1778

Description

This problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.

Input

according to output of problem 2996.

Output

according to input of problem 2996.

Sample Input

White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6

Sample Output

+---+---+---+---+---+---+---+---+
|.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
+---+---+---+---+---+---+---+---+
|:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
+---+---+---+---+---+---+---+---+
|...|:::|.n.|:::|...|:::|...|:p:|
+---+---+---+---+---+---+---+---+
|:::|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|...|:::|...|:::|.P.|:::|...|:::|
+---+---+---+---+---+---+---+---+
|:P:|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
+---+---+---+---+---+---+---+---+
|:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
+---+---+---+---+---+---+---+---+



#include<iostream>
using namespace std;

char str[10][35],ch[]="KQRBN";
char a[34]="|...|:::|...|:::|...|:::|...|:::|";
char b[34]="|:::|...|:::|...|:::|...|:::|...|";

int main()
{
	int i,j;
	memset(str,0,sizeof(str));
	for(i=1;i<=8;i++)
	{
		if(i%2)
			strcpy(str[i],a);
		else
			strcpy(str[i],b);
	}

	char c[150],d[10];;
	int k=2;
	while(k--)
	{
		memset(c,0,sizeof(c));
		scanf("%s%s",d,c);
	
		if(d[0]=='W')
		{
			for(i=0;i<strlen(c);i++)
			{
				for(j=0;j<5;j++)
				{
					if(c[i]==ch[j])
					{
						int x=c[i+1]-'a'+1;
						int y=c[i+2]-'0';
						str[(9-y)][4*x-2]=c[i];
					}
					if((c[i]>='a' && c[i]<='z') && (c[i-1]<'A' || c[i-1]>'Z'))
					{
						int x=c[i]-'a'+1;
						int y=c[i+1]-'0';
						str[9-y][4*x-2]='P';
					}
				}
			}
		}

		else
		{
			for(i=0;i<strlen(c);i++)
			{
				for(j=0;j<5;j++)
				{
					if(c[i]==ch[j])
					{
						int x=c[i+1]-'a'+1;
						int y=c[i+2]-'0';
						str[9-y][4*x-2]=c[i]+32;
					}
					if((c[i]>='a' && c[i]<='z') && (c[i-1]<'A' || c[i-1]>'Z'))
					{
						int x=c[i]-'a'+1;
						int y=c[i+1]-'0';
						str[9-y][4*x-2]='p';
					}
				}
			}
		}		
	}

	for(i=1;i<=8;i++)
	{
		cout<<"+---+---+---+---+---+---+---+---+\n";
		cout<<str[i]<<endl;
	}
	cout<<"+---+---+---+---+---+---+---+---+\n";
	
	return 0;
}


POJ 2993 Emag eht htiw Em Pleh 模拟

标签:poj   c++   

原文地址:http://blog.csdn.net/hyccfy/article/details/38032911

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!