电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构课程设计马踏棋盘

数据结构课程设计马踏棋盘_第1页
1/10
数据结构课程设计马踏棋盘_第2页
2/10
数据结构课程设计马踏棋盘_第3页
3/10
中南民族大学数据结构课程设计报告姓名:康宇年级: 2010学号: 10061014专业:计算机科学与技术指导老师:宋中山2013 年 4 月 15 日页 1实习报告:2.4 题马踏棋盘实习报告题目:设计一个国际象棋的马踏棋盘的演示程序班级:计科一班姓名:康宇学号:10061014完成日期:2013.4.15一、需求分析1、国际象棋的马踏棋盘的功能是:将马随机放在国际象棋的 N*N 棋盘 board[N][N]的某个方格中,马按走棋规则进行移动。要求每个方格只进一次,走遍棋盘上全部 N*N 个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字 1,2,...,N*N 依次填入一个 N*N 的方阵,输出之。 2、测试数据: N 由读者指定。马开始的位置也有读者指定(x,y),1<=x<=N,1<=y<=N.3、实现提示:下图显示了 N 为 6,马位于方格(3,3),8 个可能的移动位置。一般来说,马位于位置(x,y)时,可以走到下列 8 个位置之一。但是,如果(x,y)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8 个可能的位置可以用两个一维数组 hi[0...7],hj[0...7]来表示: 1 2 3 4 5 612345676851423H二、概要设计为实现上述程序功能,应用栈 Stack[Max*Max]来表示棋盘的行和列。定义棋盘的规格 N,马在下一步可以走的 8 个位置,hi[0...7],hj[0...7],用数组 board[Max][Max]来标记棋盘,top 标记栈指针。用户在输入了期盼的规格和起始坐标后,程序通过八个方向的探寻,页 2输出第一个符合要求的棋盘,棋盘上显示了马每一步的位置,每一个位置只踏了一次,且踏遍棋盘。 1、元素类型(栈):struct Stack{ int i; //行坐标 int j; //列坐标} stack[Max][ Max]; 2、建立三个全局位置数组:int hi[8]={-2,-1,1,2,2,1,-1,-2};int hj[8]={1,2,2,1,-1,-2,-2,-1};用来存放下一个可能位置的横纵坐标;int board[Max][Max];用来标记棋盘。 3、本程序包括 4 个模块 1)主程序: Void main(){While(1){ Input 棋盘规格 N;Input 起始位置的 x;Input 起始位置的 x;If(起始位置在棋盘之内) Break;}调用栈函数 InitLocation(x-1,y-1);} 2)判断是否踏遍棋盘函数boolFind(int i,int j){while(栈不空){if(踏遍了棋盘){return true;}for(k=0;k<8;k++){依次求 8 个方向;if(该位置存在且没走){寻找各方向的可走路径数;a[k]存放各路径数;页 3}}}把各路径数按从小到大顺序排列for(k=0;k<8;k++){if(有路可...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构课程设计马踏棋盘

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部