1 / 16
文档名称:

马踏棋盘程序设计.docx

格式:docx   大小:55KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

马踏棋盘程序设计.docx

上传人:luyinyzha 2019/8/31 文件大小:55 KB

下载得到文件列表

马踏棋盘程序设计.docx

文档介绍

文档介绍:马踏棋盘程序设计问题描述设计一个国际象棋的马踏棋盘的演示程序。基本要求将马随机放在国际象棋8*8的棋盘Board[8][8]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘全部的64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,3…….64一次填入一个8*8的方阵输出之测试数据可自行指定一个马的初始位置(i,j),0<=i,j<=7.。实现提示一般说来,当马位于位置(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-2,j-1)但是,如果(i,j)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8个可能位置可以用一维数组Htry1[0…7]和HTry2[0..7]来表示:Htry101234567-2-11221-1-2Htry20**********-1-2-2-1位于(i,j)的马可以走到新位置是在棋盘范围内的(i+Htry1[h],j+Htry2[h]),其中h=0,1,….;分开输入马的初始行坐标X和列坐标Y,X和Y的范围都是[0,7]。;一共提供了2种输出方式:(1)以数组下标形式输入,代表起始位置,i表示行标,j表示列标。(2)以棋盘形式输出,每一格打印马走的步数,这种方式比较直观。;让马从任一起点出发都能够历遍整个8×8的棋盘。:ADTStack{数据对象:D={ai|ai∈CharSet,i=1,2..,n}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}基本操作:(这里仅列举本题中使用的操作)InitStack(&S)操作结果:构建一个空栈。Push(&S,e)操作结果:在栈顶插入新的元素。Pop(&S,&e)操作结果:将栈顶元素弹出。SetTop(S,&e)操作结果:将e设为栈顶元素。GetTop(S,&e)操作结果:将栈顶元素取出。StackEmpty(S)判断栈是否为空}(1).主程序模块:Voidmain(){初始化棋盘;while(1){接受命令;处理命令;}执行Path(x,y);}(2).栈模块-“最佳策略”思路1)先求出每个坐标点的权值,即是该坐标下一步有几个方向可以走2)权值越小,则被上一点选中的可能性就越大,下一个方向八个值的选择顺序保存MAP[X][Y][K]数组中,0<=K<=7,例如MAP[X][Y][0]保存的是下一步优先选择走的方向,MAP[X][Y][7]就是最后才走的。边界的点最先走,然后再走中间。:While(){若已经走了64步,则{打印输出结果;}否则{若该点所有方向已走完{出栈}若该点所有方向未走完{若该点未走过且在棋盘内{入栈,已走步数加1}否则{*下一步方向加1}}}}{inta;intb;intdi;//方向编号intflag[8];//访问过的方向数};栈的顺序存储表示typedefstructSqStack{SElemType*base;SElemType*top;intstacksize;};栈基本操作:StatusInitStack(SqStack*S){/*构造一个空栈S*/(*S).base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!(*S).base)exit(OVERFLOW);/*存储分配失败*/(*S).top=(*S).base;(*S).stacksize=STACK_INIT_SIZE;returnOK;}StatusStackEmpty(SqStackS){/*若栈S为空栈,则返回TRUE,否则返回FALSE*/if(==)returnTRUE;elsereturnFALSE;}StatusGetTop(SqStackS,SElemType*e){/*若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR/if(>){*e=*(-1);returnOK;}elsereturnERROR;}StatusSetTop(SqStackS,SElemType*e){if(>){*(-1)=*e;returnOK;}elsereturnERROR;}StatusPush(SqStack*

最近更新

最新人教版四年级语文(下册)期中知识点及答案.. 7页

最新人教版四年级语文下册期中考试卷附参考答.. 6页

最新人教部编版三年级语文上册期末考试及答案.. 7页

最新人教部编版二年级语文上册期末考试卷及答.. 5页

最新人教部编版四年级语文上册期末考试卷(免费.. 7页

最新冀教版二年级数学(上册)期中试卷及答案(汇.. 6页

最新北师大版一年级数学上册期中试卷(新版) 6页

最新苏教版三年级数学上册期中考试卷及答案【.. 5页

最新苏教版四年级数学(上册)期中试卷含参考答.. 6页

最新西师大版一年级数学上册期中考试及答案【.. 7页

最新西师大版二年级数学上册期中测试卷(完整).. 6页

最新西师大版四年级数学上册期中考试题(免费).. 6页

最新部编人教版一年级语文上册期中考试卷及答.. 4页

最新部编人教版三年级数学上册期中测试卷(完美.. 6页

最新部编人教版三年级语文上册期末模拟考试及.. 7页

最新部编人教版二年级语文上册二单元试题及答.. 14页

最新部编人教版四年级数学上册期中模拟考试【.. 6页

最新部编版一年级语文下册期末考试题真题 6页

最新部编版三年级语文上册期中测试卷及答案【.. 7页

最新部编版三年级语文下册期末考试卷(全面) 7页

最新部编版二年级语文上册期末考试题及答案【.. 5页

最新部编版四年级数学(上册)期中试题及答案一.. 6页

最新部编版四年级语文上册期中考试及答案【完.. 6页

最新部编版年级语文上册第次月考标准测试卷及.. 18页

10.1 相交线 9页

高中地理卢陈莉教学必修一2.4.1水循环和洋流 44页

青春因奋斗而精彩演讲稿(精选6篇) 7页

街头的温暖作文8篇 9页

美丽的夜空作文[通用15篇] 13页

精选同学的作文300字4篇 3页