题目描述:
任务很简单. 确定国际象棋棋盘上处于骑士攻击之下的格子个数. 棋盘上没有其它棋子. 骑士的走法: 横(纵)向走两个格, 再纵(横)向走一个格(类似于中国象棋中的马).
代码:
package lanqiao;
import java.util.*;
public class Main {
static int f[][] = {{2,-1},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2}};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
for(int i = 0;i < n;i ++)
{
String s = sc.nextLine();
int x = s.charAt(0) - 96;
int y = s.charAt(1) - 48;
System.out.println(num(x,y));
}
}
static int num(int x,int y)
{
int d = 0;
for(int i = 0;i < 8;i ++) {
int x1 = f[i][0] + x;
int y1 = f[i][1] + y;
if (x1 > 0 && x1 < 9 && y1 > 0 && y1 < 9) {
d++;
}
}
return d;
}
}