先说明一下算法问题,在棋盘上,要怎么选择行走的方向才能遍历整个棋盘呢。简单来说,就是选择一个在选择了它之后它的下一步可选方向最少的那一个方向。总体上就是先选择比较困难的路来走,将比较简单的路线留到后面再走。
那么接下来我们先来看看一个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 int[8][8];
Bushu aaa = new Bushu();
if (aaa.ac(board)) {
System.out.println("完成:");
}
for (int i = 0; i < boar

本文介绍了骑士游历问题的解决方案,通过选择行走方向最少的格子,逐步遍历棋盘。首先解析8x8棋盘上每个格子的可行方向,然后展示了一个非完整代码示例。接着提供了一个经过改进并带有注释的正式JAVA代码,该代码可在开发平台上运行完成骑士游历的计算。
最低0.47元/天 解锁文章
341





