纵向两格(但是西洋棋棋子必须放在格子中),第1步有.docVIP

纵向两格(但是西洋棋棋子必须放在格子中),第1步有.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西洋棋中骑士的走法与象棋的马类似,只能横向二格,纵向一格或者横向一格,纵向两格(但是西洋棋棋子必须放在格子中),第1步有2种走法,第二步就有5种走法.今有5*5的棋盘,并将骑士的第一步放于左上角(0,0)的位置,试找出一个路径,使骑士在25步内把剩下的24个位置全部走完.输出结果时,将骑士的路径显示于的5*5的方格中,每一方格内显示出走到此方格内为第同步的数字. ? ? ? ? ? ? 请写出全部过程,不甚感谢! 到处都有,给你一个,省的你找了 ? ? 1 ? 回溯法(栈回溯) ? ? #includestdio.h ? ? int ? Directions[8][2]={ ? ? {2,1},{-2,1}, ? ? {1,2},{-1,2}, ? ? {2,-1},{-2,-1}, ? ? {1,-2},{-1-2} ? ? }; ? ? int ? a[100],b[100],chess[5][4];/*a[100],b[100]用来记录每次跳到的X,Y,chess[5][4]代表棋盘*/ ? ? main() ? ? { ? ? ? ? ? int ? dep=1,i=0,j=0,t=0,q=1,g,s,n[100];/*dep代表跳的步数,n[100]用来记录前一次跳的方向*/ ? ? ? ? ? for ? (g=0;g=4;g++) ? ? ? ? ? ? ? for(s=0;s=3;s++) ? ? ? ? ? ? ? ? ? chess[g][s]=0; ? ? ? ? ? chess[0][0]=1;/*从(0,0)处跳*/ ? ? ? ? ? while(1) ? ? ? ? ? { ? ? ? ? ? ? ? ? while(t=7)/*共0~7个方向,轮流试*/ ? ? ? ? ? ? ? ? { ? ? a[q]=i; ? ? b[q]=j; ? ? i=i+Directions[t][0]; ? ? j=j+Directions[t][1]; ? ? if(j=0 ? j=3 ? i=0i=4chess[i][j]==0)/*判断所跳之处是否合法*/ ? ? {q++;n[q]=t;t=0;dep++;chess[i][j] ? ? =dep; ? ? ? if(dep==20) ? goto ? lable;/*一旦所跳之处合法,且全局走满则可打印结果了*/ ? ? } ? ? else ? ? {t++; ? i=a[q];j=b[q];}/*一种方向不行,换个方向再试*/ ? ? ? ? ? ? ? ? } ? ? ? ? ? ? chess[i][j]=0;t=n[q]+1;i=a[--q];j=b[q];dep--;}/*8种方向都试完仍不行,则回溯*/ ? ? lable: ? for(g=0;g=4;g++) ? ? ? ? ? { ? ? ? ? ? ? for(s=0;s=3;s++) ? ? ? ? ? ? printf(%4d,chess[g][s]); ? ? ? ? ? ? printf(\n); ? ? ? ? ? ? } ? ? } ? ? -------------------------------------------------------------------- ? ? 2 ? 递归法 ? ? ? ? #include ? stdio.h ? ? #define ? MAX_XY ? 6 ? ? #define ? true ? 1 ? ? #define ? false ? 0 ? ? static ? int ? anDirections[8][2]={ {2,1},{1,2}, ? ? {-1,-2},{-2,-1}, ? ? {1,-2},{-2,1}, ? ? {-1,2},{2,-1} }; ? ? typedef ? int ? status; ? ? typedef ? struct ? ? { ? ? int ? nStep; // ? Which ? step ? this ? square ? is ? ? int ? nDirection; // ? the ? 8 ? posibilities ? of ? direction ? ? }TSquare; ? ? TSquare ? Board[MAX_XY][MAX_XY]; ? ? ? ? void ? RecurseFind( ? int ? startX, ? int ? startY ? ); ? ? void ? RecurseFindExecut

文档评论(0)

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

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

1亿VIP精品文档

相关文档