终于撸完了最后一道模拟题,恶心死我了。。。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
char Map[40][40];
void IntMap()
{
for(int i=0;i<17;i++)
{
for(int j=0;j<33;j++)
{
if(i%2==0&&j%4==0)
Map[i][j]='+';
else if(i%2==0&&j%4!=0)
Map[i][j]='-';
else if(i%2==1&&j%4==0)
Map[i][j]='|';
else if(i%4==1&&(j%8==1||j%8==2||j%8==3))
Map[i][j]='.';
else if(i%4==3&&(j%8==5||j%8==6||j%8==7))
Map[i][j]='.';
else
Map[i][j]=':';
}
}
}
void printMap()
{
for(int i=0;i<17;i++)
{
for(int j=0;j<33;j++)
printf("%c",Map[i][j]);
printf("\n");
}
}
int tracol(char ch)
{
switch(ch)
{
case 'a':return 0;
case 'b':return 1;
case 'c':return 2;
case 'd':return 3;
case 'e':return 4;
case 'f':return 5;
case 'g':return 6;
case 'h':return 7;
}
return -1;
}
void inser(int isp,int iswb,char *p)//p->1 w->0
{
char ch;
if(isp==0)
{
if(iswb==0)
ch=*p;
else
ch=*p+32;
char ti=*(p+1);
char tj=*(p+2);
//printf("%c %c %c**",ch,ti,tj);
int i=17-(tj-'0')*2;
int j=tracol(ti)*4+2;
Map[i][j]=ch;
}
else
{
if(iswb==0)
ch='P';
else
ch='p';
char ti=*(p);
char tj=*(p+1);
//printf("%c %c %c**",ch,ti,tj);
int i=17-(tj-'0')*2;
int j=tracol(ti)*4+2;
Map[i][j]=ch;
}
}
int main()
{
IntMap();
//printMap();
char trash[10],info[100];
scanf("%s%s",trash,info);
//printf("%s",info);
int i=0;
while(i<strlen(info))
{
if(info[i+3]==',')
{
inser(0,0,&info[i]);
i+=4;
}
else
{
inser(1,0,&info[i]);
i+=3;
}
}
scanf("%s%s",trash,info);
//printf("%s",info);
i=0;
while(i<strlen(info))
{
if(info[i+3]==',')
{
inser(0,1,&info[i]);
i+=4;
}
else
{
inser(1,1,&info[i]);
i+=3;
}
}
printMap();
return 0;
}