国际象棋马走满棋盘不重复.pdf
《国际象棋马走满棋盘不重复.pdf》由会员分享,可在线阅读,更多相关《国际象棋马走满棋盘不重复.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实习报告实习报告 题目:编制一个实现8X8马踏棋盘的一个程序.班级:11计算机2班 组员:潘财策 斯祯量 章春伟 朱伟 完成日期:2013.6.7 一一 需求分析需求分析 将马随机放在国际象棋的8 8棋盘ch0707的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,64依次填入一个8 8的方阵,输出之 二二 概要设计概要设计 为实现上述功能需要一个顺序的栈存储每一步,以及一个模拟马踏棋盘过程的模块。为此需要两个抽象数据类型,即栈和马踏棋盘.1.对栈的抽象数据定义为:void InitSta
2、ck(SqStack&S);/构造一个空栈S bool GetTop(SqStack&S,XY&e);/若栈不空,则用e返回s的栈顶元素,返回OK;否则返回ERROR void Push(SqStack&S,XY&e);/插入元素e为新的栈顶元素 bool Pop(SqStack&S);/若栈不空,则删除s的栈顶元素,并用e返回其值,并返回OK;否则返回ERROR 2.对马踏棋盘的抽象数据定义为:void Cha(XY&e);/判断可选的最佳位置并排序 bool Next(XY&e,int ch8,SqStack&S,XY&r);/贪心法判断下一步的可能选位置,并返回OK 若找不到位置返回ER
3、ROR void MT(int ch8,SqStack&S);/依次重复运行,找出所有位置 3.本程序包涵3个模块:1)主程序模块.2)实现栈操作模块.3)实现马踏棋盘操作模块.三三 详细设计详细设计#include#include#include#define STACK_INIT_SIZE 70#define STACKINCREMENT 10 void gz()/程序说明 system(cls);printf(*n);printf(*程序说明:*n);printf(*8X8 的国际棋盘 *n);printf(*输入两个数字作为马的初始位置 *n);printf(*输入数据必须在 07 之
4、间 *n);printf(*程序将给出马的遍历行走路线 *n);printf(*路线以步数形式给出 *n);printf(*计算机 2 班 16 组*nn);printf(输入初始位置开始程序:);typedef struct /定义 Po 型数据,Po 为下一步棋的坐标(简称当前步的出口)int x;/x 坐标 int y;/y 坐标 int p;/当前步出口的下一步棋出口的数量 Po;typedef struct /定义 XY 类型,xy 为当前步棋 int x;/x 坐标 int y;/y 坐标 int p;/当前步棋的出口序号 int n;/当前步棋的出口数量 Po a8;/Po 型数
5、组 XY;typedef struct /定义栈 XY*base;XY*top;int stacksize;SqStack;void InitStack(SqStack&S)/建立空栈 S.base=(XY*)malloc(STACK_INIT_SIZE*sizeof(XY);if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INIT_SIZE;bool GetTop(SqStack&S,XY&e)/顶端元素赋值给 e,返回 ture if(S.top=S.base)return false;e=*(S.top-1);return
6、 true;void ChP(SqStack&S,XY e)/修改栈顶端元素 *(S.top-1)=e;void Push(SqStack&S,XY&e)if(S.top-S.base=S.stacksize)/如果栈存储空间不够,增加分配空间 S.base=(XY*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(XY);if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;(*S.top).x=e.x;/把 e 压入栈 (*S.top
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国际象棋 马走满 棋盘 重复
限制150内