#include <iostream> #include <string.h> using namespace std; char map[20][35]; void init(char map[][35]) { for(int i=17;i>=1;i--) { if(i%2==1) strcpy(map[i],"+---+---+---+---+---+---+---+---+"); else if(i/2%2==1) strcpy(map[i],"|:::|...|:::|...|:::|...|:::|...|"); else strcpy(map[i],"|...|:::|...|:::|...|:::|...|:::|"); } } void dl(string s,char c[],int kk) { int where1,where2; int row,colunm; where1=5; while((where2=s.find(c,where1))>=0) { colunm=s[where2+1]-'`'; row=s[where2+2]-'0'; map[row*2][colunm*4-2]=c[0]+kk; where1=where2+1; } } void deal(string s,int kk) { int where1,where2; int row,colunm; dl(s,"K",kk); dl(s,"Q",kk); dl(s,"R",kk); dl(s,"B",kk); dl(s,"N",kk); //处理 P where1=s.rfind(","); if(s[where1+1]>='a') { colunm=s[where1+1]-'`'; row=s[where1+2]-'0'; map[row*2][colunm*4-2]='P'+kk; } while(s[where1-3]==',') { where1-=3; colunm=s[where1+1]-'`'; row=s[where1+2]-'0'; map[row*2][colunm*4-2]='P'+kk; } } void print(char map[][35]) { for(int i=17;i>0;i--) cout<<map[i]<<endl; } int main() { char str[35]; string s; init(map);// 初始化地图 //处理white gets(str); s=str; deal(s,0); //处理black gets(str); s=str; deal(s,32); print(map); system("pause"); return 0; }