



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
骑士周游世界之快速周游(小于1秒)*走一步看两步*【问题分析】(1)棋盘的表示方法我们可以用一个88的二维数组A(I,J)来表示国际象棋的棋盘,在马还没有开始周游棋盘时,棋盘上所有的格都置为零。以后,马跳到哪个格,就将马跳跃的步数记录在相应的空格里。(2)马的跳跃方向的确定在国际象棋的棋盘上,一匹马共有八个可能的跳跃方向。我们设置一组坐标增量来描述这八个条约方向: (1,2) (2,1) (2,-1) (1,-2) (-1,-2) (-2,-1) (-2,1) (-1,2)(3) 马的跳跃方向的表示设I表示行,J表示列,行增量为DI(R),列增量为DJ(R),则马向某个方向试探性地跳跃一步之后的新坐标应该表示为:NI=I+DI(R),NJ=J+DJ(R)。(4) 朝某个方向试探性地跳跃一步再看下一步(取下一步最小可走方向(处里边角问题),任何一点的坐标加上要试探方向的坐标增量之后,都要判断一下是否已经超出了棋盘的边界。即:当I 8,或J 8时,都表示已经超出了棋盘的边界,这时,应该放弃该方向,转向试探下一个方向,在不出界的情况下,如果A(NI,NJ)=0,则表示该方向的前方有通路,可以继续向前跳跃。如果A(NI,NJ)0,则表示该格已经走过了,不能再走。放弃该方向,并转向下一个方向进行试探。#includestdio.h#includeconio.h#define N 19 /*How many the horse最好不要超过19(超出屏幕)*/int top=0;struct stack int x;int y;int step;maN*N+1=0,0,0;void push(int aN,int i,int j,int m) matop.x=i;matop.y=j;matop.step=m;aj=+top;int pop(int aN) int temp;top-;amatop.xmatop.y=0;matop.x=0;matop.y=0;temp=matop.step+1;matop.step=0;return temp;int jump(int i,int j,int a8) int col=2,1,-1,-2,-2,-1,1,2;int row=-1,-2,-2,-1,1,2,2,1;int t,ti=i,tj=j,count=0;for(t=0;t=0&j=0&iN&jN&aj=0)return 1;return 0;sort(int a8,int b8) int i,min=a0,t=0;for(i=1;ia&a-1&a8) min=a; /*Find the Min-way the horse to jump*/ t=b;return t;void disp(int aN) int i,j;for(i=0;iN;i+) for(j=0;jN;j+)printf(%4d,aj); printf(n);void horse(int x,int y) int i=x,j=y,min,ti,tj,t,temp=0,flag=0,temp1=0;int count8,num8=0;int col=2,1,-1,-2,-2,-1,1,2;int row=-1,-2,-2,-1,1,2,2,1;int aNN=0;for(x=0;x8;x+) countx=8;push(a,i,j,0);while(topN*N) ti=i;tj=j;temp1=0;flag=0;for(x=0;x8;x+) countx=8;for(t=temp;t8;t+,temp1+) /*How many ways for the horse can jump for first time*/ ti+=rowt;tj+=colt; if(judge(ti,tj,a) counttemp1=jump(ti,tj,a); numtemp1=t; flag=1; ti-=rowt;tj-=colt;if(flag) min=sort(count,num); ti+=rowmin;tj+=colmin; push(a,ti,tj,min); /*In the stack*/ i=ti;j=tj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版大学生实习就业指导家教服务合同
- 管理新挑战讲座
- 护理责任与输液安全的法律问题
- 胸部外伤患者护理查房经验
- 卒中后康复护理查房
- 穿刺部位护理中的无菌技术
- 多重用药管理中的安全护航
- 局机关微信保密管理制度
- 2025年度高一历史下学期期末模拟试卷及答案(四)
- 市政工程施工技术课件
- 图片格式教学课件
- 建设项目使用林地可行性报告
- 新安全生产法2025全文
- 感恩地球活动方案
- 2025年中国共产党支部工作条例(试行)暨党支部建设标准化工作知识竞赛考试试题(综合题库)(含答案)
- 2025年江苏省扬州树人学校七年级英语第二学期期末综合测试试题含答案
- 中试基地相关管理制度
- 产品停产退市管理制度
- 2025-2030中国覆铜板(CCL)行业投资策略与可持续发展建议报告
- 2025年云南省中考数学试卷真题及解析答案
- 2025至2030中国安全劳保用品行业发展分析及产业运行态势及投资规划深度研究报告
评论
0/150
提交评论