主题:数据结构:马踏棋盘
楼主
综合实验八 马踏棋盘
一、 实验目的:
(1) 熟练掌握栈的基本操作及应用。
(2) 利用栈的基本操作,编制实现一个国际象棋的马踏遍棋盘的非递归演示程序。
二、实验内容:
【问题描述】
设计一个国际象棋的马踏遍棋盘的演示程序。
【基本要求】
将马随机放在国际象棋的88棋盘Board88的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个88的阵,输出之。
【测试数据】
由读者指定。可自行指定一个马的初始位置
【实现提示】
下页图显示了马位于方格(2,3)时,8个可能的移动位置。
一般来说,当马位于位置(i,j)时,可以走到下列8个位置之一
(I-2, j+1),(I-1,j+2),(I+1,j+2),(I+2,j+1),(I+2,j-1),(I+1,j-2),(I-1,j-2),(I-2j+1)
但是,如果(i,j)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8个可能位置可以用两个一维数组Htry[10..7]和Htry[20..7]来表示。
位于(I,j)的马可以走到的新位置是在棋盘范围内的(I+Htry1[h],j+Htry2[h]),其中h=0,1,…,7。
每次在多个可走位置中选择其中一个进行试控,其余未曾试过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。
【选作内容】
(1) 求出从某一起点出发的多条以至全部行走路线。
(2) 探讨每次选择位置的“最佳策略”,以减少回溯的次数。
(3) 演示寻找行走路线的回溯过程。
以上为题目要求,请各位高手帮忙..急用..
我的邮箱是330312611@QQ.com
综合实验八 马踏棋盘
一、 实验目的:
(1) 熟练掌握栈的基本操作及应用。
(2) 利用栈的基本操作,编制实现一个国际象棋的马踏遍棋盘的非递归演示程序。
二、实验内容:
【问题描述】
设计一个国际象棋的马踏遍棋盘的演示程序。
【基本要求】
将马随机放在国际象棋的88棋盘Board88的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个88的阵,输出之。
【测试数据】
由读者指定。可自行指定一个马的初始位置
【实现提示】
下页图显示了马位于方格(2,3)时,8个可能的移动位置。
一般来说,当马位于位置(i,j)时,可以走到下列8个位置之一
(I-2, j+1),(I-1,j+2),(I+1,j+2),(I+2,j+1),(I+2,j-1),(I+1,j-2),(I-1,j-2),(I-2j+1)
但是,如果(i,j)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8个可能位置可以用两个一维数组Htry[10..7]和Htry[20..7]来表示。
位于(I,j)的马可以走到的新位置是在棋盘范围内的(I+Htry1[h],j+Htry2[h]),其中h=0,1,…,7。
每次在多个可走位置中选择其中一个进行试控,其余未曾试过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。
【选作内容】
(1) 求出从某一起点出发的多条以至全部行走路线。
(2) 探讨每次选择位置的“最佳策略”,以减少回溯的次数。
(3) 演示寻找行走路线的回溯过程。
以上为题目要求,请各位高手帮忙..急用..
我的邮箱是330312611@QQ.com