题目
Description
任务很简单. 确定国际象棋棋盘上处于骑士攻击之下的格子个数. 棋盘上没有其它棋子. 骑士的走法: 横(纵)向走两个格, 再纵(横)向走一个格(类似于中国象棋中的马).
Input
第一行为测试次数N, 1 ≤ N ≤ 100.
后面N行每行包含一个坐标表示骑士的位置.
字母表示横向位置, 数字表示纵向位置.
Output
输出N行. 每行一个整数, 表示骑士可攻击的格子个数.
Sample Input
3
a1
d4
g6
代码块
import java.util.Scanner;//输入包
public class Main {
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);//输入流
int n = cn.nextInt();
while (n-- > 0) {//进行多组输入判断
String str = cn.next();
char[] c = str.toCharArray();
int counts = 0;
if (c[0] - 2 >= 'a' && c[1] - '1' >= 1) {
counts++;
}
if (c[0] - 2 >= 'a' && '8' - c[1] >= 1) {
counts++;
}
if (c[1] - 2 >= 49 && c[0] - 1 >= 'a') {
counts++;
}
if (c[1] - 2 >= 49 && 'h' - c[0] >= 1) {
counts++;
}
if ('8' - c[1] >= 2 && c[0] - 1 >= 97) {
counts++;
}
if ('8' - c[1] >= 2 && 'h' - c[0] >= 1) {
counts++;
}
if ('h' - c[0] >= 2 && c[1] - 1 >= 49) {
counts++;
}
if ('h' - c[0] >= 2 && '8' - c[1] >= 1) {
counts++;
}
System.out.println(counts);
}
cn.close();
}
}