A40986. 孤独的骑士
填空题
较易
知识点
题目描述
孤独的骑士
题目描述
任务很简单. 确定国际象棋棋盘上处于骑士攻击之下的格子个数. 棋盘上没有其它棋子. 骑士的走法: 横(纵)向走两个格, 再纵(横)向走一个格(类似于中国象棋中的马).
输入格式
第一行为测试次数N, 1 ≤ N ≤ 100.
后面N行每行包含一个坐标表示骑士的位置.
字母表示横向位置, 数字表示纵向位置.
输出格式
输出N行. 每行一个整数, 表示骑士可攻击的格子个数.
样例输入
3
a1
d4
g6
样例输出
2
8
6
参考答案
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int mov[9][2]={-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1},xx,yy;
int main()
{
int q,i,j,k,t,p,ans;
char c;
while(scanf("%d",&t)==1){
getchar();
while(t--){
ans=0;
scanf("%c%d",&c,&p);
getchar();
if(c=='a')q=1;
if(c=='b')q=2;
if(c=='c')q=3;
if(c=='d')q=4;
if(c=='e')q=5;
if(c=='f')q=6;
if(c=='g')q=7;
if(c=='h')q=8;
for(i=0;i<8;++i){
xx=q+mov[i][1];
yy=p+mov[i][0];
if(xx>=1&&xx<9&&yy>=1&&yy<9)
ans++;
}
printf("%d\n",ans);
}
}
return 0;
}
上一题
下一题