国际象棋为许多令人着迷的娱乐提供了固定的框架,这些框架独立于游戏本身。其中很多都是基于奇异的骑士“L型”(L-shaped)移动。一个经典的例子就是骑士巡游(knight's tour)问题。
编写程序求解骑士巡游问题:在n行m列的棋盘上,输出一位骑士(按象棋中“马走日”的行走法)从(1,1)开始,遍历棋盘的顺序。
骑士的八种跳法用以下常量数组表示(表示每跳一步在行和列上的变化量):
const
dx:array [1..8] of integer=(-2,-1,1,2,2,1,-1,-2);
dy:array [1..8] of integer=(1,2,2,1,-1,-2,-2,-1);
5 5
1 20 17 12 3
16 11 2 7 18
21 24 19 4 13
10 15 6 23 8
25 22 9 14 5