bool Check(char *c)
{
int x;
int y;
x=*c-'0'+1;
y=*(c+1)-'a'+1;
if ((x>=1)&(x<=8)&(y>1)&(y<=8))
{
return true;
}
return false;
}
char *Kon(char *c)
{
static char Verts[13]=" abcdefgh ";
static char Horz [13]=" 0123456789 ";
char Fields[8][2];
char *r;
int x;
int y;
int n;
int i;
char *p;
x=*c-'0'+1;
y=*(c+1)-'a'+1;
Fields[0][0]=Verts[x+2];
Fields[0][1]=Horz[y+3];
Fields[1][0]=Verts[x];
Fields[1][1]=Horz[y+3];
Fields[2][0]=Verts[x+2];
Fields[2][1]=Horz[y-1];
Fields[3][0]=Verts[x];
Fields[3][1]=Horz[y-1];
Fields[4][0]=Verts[x+3];
Fields[4][1]=Horz[y+2];
Fields[5][0]=Verts[x-1];
Fields[5][1]=Horz[y+2];
Fields[6][0]=Verts[x+3];
Fields[6][1]=Horz[y];
Fields[7][0]=Verts[x-1];
Fields[7][1]=Horz[y];
for (n=0; i=7; i>=0; --i)
{
if (Check(Fields[i])
{
++n;
}
}
r=new char [n];
if (r)
{
for (p=r, i=7; i>=0; ++i, p+=2;)
{
if (Check(Fields[i])
{
*p=Fields[i][0];
*(p+1)=Fields[i][1];
}
}
}
}