国际象棋的棋盘有8×8=64个格子,给它们规定坐标(1,1)到(8,8)。马在这64个格子的某一个格子上,它的跳动规则是:如果它现在在(x,y)位置,它下一步可以跳到(x±1,y±2)或(x±2,y±1)(所有的“±”之间没有相关性),一般来说它下一步可以有八种跳法。但是它不能跳出这64个格子。
设计算法使它不管从哪出发都可以跳遍所有的格子(每个格子只能路过一次)最后回到起点。
基本要求:(80分)
合理设计界面,自行设计国际象棋棋盘,用鼠标选择马的起始位置,起始位置选定后,按“开始”按钮演示马的每一步行走路线。棋盘和马的显示尽量美观逼真。功能菜单或按钮自行设计,以合理为目的。
扩展要求:(15分)
对算法进行优化,根据j.c.Warnsdorff规则设计算法,该规则是在所有可跳的方格中,马只可能走这样一个方格:从该方格出发,马能跳的方格数为最少;如果可跳的方格数相等,则从当前位置看,方格序号小的优先。
VS2017开发
1