先说明一下算法问题,在棋盘上,要怎么选择行走的方向才能遍历整个棋盘呢。简单来说,就是选择一个在选择了它之后它的下一步可选方向最少的那一个方向。总体上就是先选择比较困难的路来走,将比较简单的路线留到后面再走。
那么接下来我们先来看看一个8x8的棋盘上每个格子的可走方向来理解一下这个算法。
先上代码。(注意!下面这个代码不是用来解决骑士游历问题的)
`public class Bushu {
private boolean ac(int[][] board) {
int[] movex = { -2, -1, 1, 2, 2, 1, -1, -2 };
int[] movey = { 1, 2, 2, 1, -1, -2, -2, -1 };
int i = 0;
int j = 0;
int temJ = 0;
int temI=0;
for(i=0;i<board.length;i++)
{for(j=0;j<board.length;j++) {
int count=0;
for(int k=0;k<=7;k++)
{temI =i+movex[k];
temJ =j+movey[k];
if (temI < 0 || temI > 7 || temJ < 0 || temJ > 7) {
continue;
}
else {
count++;
board[i][j]=count;}
}
}
}
return true;
}
public static void main(String[] args) {
int[][] board = new