马踏棋盘课程设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 13 课程设计题目 1 问题描述 将马随机放在国际象棋的8*8棋盘Board[8][8]的某个方格中,马按走棋规则进行移动,要求每个方格上只进入一次,走遍棋盘上全部64个方格 2 基本要求 采用图形界面实现该游戏。 从键盘输入马的初始位置。 编制程序,求出马的行走路线 ,并按求出的行走路线,将数字1,2,…,64依次填入一个8* 8的方阵,并输出之。 3系统分析与设计 3.1 数据结构 逻辑结构为线性结构,用顺序栈。坐标点用已结构体来表示,并将其的位置放在s[step]的栈中,而且将每走一步的坐标放在另一栈s1中 3.2 算法设计 1.程序框架及功能模块划分: 2.设计功能的分析与实现 void exit(point p) 参数:point 功能:计算出下一步可能位置,按其各个位置下一个位置的和压栈到s[]中 算法描述:接受参数传来的值,按次序加上 int horizontal[]={2,1,-1,-2,-2,-1,1,2}; int vertical[]={-1,-2,-2,-1,1,2,2,1}; 再根据legal函数来判断是否合法(x(0~7),y(0~7))是,则保存在point ap[]中,再按各自下一步的数目从大到小排序。最后,将ap[]中的点压栈。 int number(point p) 参数:point 功能:找出当前位置下一步的各种可能位置,计算可能之和 算法描述:接受参数传来的值,按次序加上 int horizontal[]={2,1,-1,-2,-2,-1,1,2}; int vertical[]={-1,-2,-2,-1,1,2,2,1}; 再根据legal函数来判断是否合法(x(0~7),y(0~7))是,则加1并将值返回 void next(point p) 参数:point 功能:/找出各个位置并将其步数记录 算法描述:将其步数记录在board[][]的相应位置,并将这点压栈到s1,判断步数是否小于64,再根据这四个条件选择执行其中的一个,再递归调用next. bool legal(point p) 参数:point 功能:判断是否可行,合法(是否在棋盘上,是否走过) 算法描述 :用这样的语句if((p.x=0)(p.xn)(p.yn)(p.y=0)(board[p.x][p.y]==0)) return true; else return false; 4 测试数据及结果 测试数据和运行输出及结果分析 输入x(0-7),y(0-7) 0 0 1 34 3 18 49 32 13 16 4 19 56 33 14 17 50 31 57 2 35 48 55 52 15 12 20 5 60 53 36 47 30 51 41 58 37 46 61 54 11 26 6 21 42 59 38 27 64 29 43 40 23 8 45 62 25 10 22 7 44 39 24 9 28 63 Press any key to continue 输入x(0-7),y(0-7) 0 9 输入不合法,重输入! 输入x(0-7!),y(0-7!) 4 5 30 27 10 49 40 25 8 5 11 48 29 26 9 6 39 24 28 31 56 45 50 41 4 7 47 12 51 42 19 44 23 38 32 57 46 55 52 1 18 3 13 64 53 60 43 20 37 22 58 33 62 15 54 35 2 17 63 14 59 34 61 16 21 36 Press any key to continue 5 总结 调试过程中遇到的主要问题,是如何解决的; 问题1:只走到63步 原因:第64步就走完了,并且s[62]中只有一个元素,这个判断条件(s[step].base==s[step].topnumber(p2)==0)满足就进入了,而始终不能走完 解决方法:改了判断条件,改为((s[step].bas

文档评论(0)

xieliandimei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档