国际象棋马走满棋盘不重复
实习报告
题目:编制一个实现8X8马踏棋盘的一个程序.
班级:11计算机2班 组员:潘财策 斯祯量 章春伟 朱伟 完成日期:2013.6.7
一 需求分析 将马随机放在国际象棋的8×8棋盘ch[0~7][0~7]的某个方格中,马按走棋规则进行移
动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行
走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个8×8的方阵,输出之
二 概要设计
为实现上述功能需要一个顺序的栈存储每一步,以及一个模拟马踏棋盘过程的模块。为
此需要两个抽象数据类型,即栈和马踏棋盘.
1.对栈的抽象数据定义为:
void InitStack(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 ch[][8],SqStack &S,XY &r);
//贪心法判断下一步的可能选位置,并返回OK 若找不到位置返回ERROR
void MT(int ch[][8],SqStack &S); //依次重复运行,找出所有位置
3.本程序包涵3个模块:
1)主程序模块.
2)实现栈操作模块.
3)实现马踏棋盘操作模块.
三 详细设计
#include<stdio.h>
#include<malloc.h>
#include<stack>
#define STACK_INIT_SIZE 70
#define STACKINCREMENT 10
void gz(){ //程序说明
国际象棋马周游全棋盘问题java算法_计算机软件及应用_IT/计算机_专业资料。... 国际象棋的棋盘与棋子 暂无评价 8页 免费 国际象棋马走满棋盘不重... 暂无...
2. 问题的提出考虑国际象棋棋盘上某位置的马,它是否可能只 Copyright ? 2012 ...马放置 在任意的空格内,然后让马按规则行走,最终走满 64 个格,其中不能重复...
绘制国际象棋棋盘_计算机软件及应用_IT/计算机_专业资料。本文分别在DOS界面下...它 们并没有特定的图形显示, 但会依不同的应用程序, 而对文本显示有不同的...
国际象棋中的马_军事/政治_人文社科_专业资料。国际象棋中的马(Knight) 国际... 国际象棋中马的周游路线... 4页 免费 国际象棋马走满棋盘不重... 暂无...
“国际象棋的棋盘、棋子和它的走法,常常用来图示...过棋盘上马的跳 跃问题,他证明了,存在一个马的...再由 B 区至 A 区的交替跳跃,才可能不重复地跳...
●象 只能斜走,格数不限,不能越子。 ●马 每步棋先横走或竖走一格,然后...8.胜、负、和的判定 胜● 胜负判定 国际象棋的对局目的是把对方的王将死,...
棋局由白方先下,对奕双方轮流移动棋盘上既有的己方棋子,一步棋只能移动一个 ...不同的是, 囯际象棋的马没有“绊马脚”的限 制,故马可越过其他棋子。吃子...
5 对头顶沿线的顶点重复此步骤,然后使用“前”视口使切线水平。 测试“曲面”... 国际象棋中马、象、车、... 2页 免费 国际象棋马走满棋盘不重... 暂无...
“所有变着,都是死棋” 五、国际象棋棋盘介绍 ? ...? (4)同一局面被三次重复。 ? 除此之外,几种...玩家可选 择把该兵子升级为车、马、象或后(不限...
在国际象棋棋盘上实现马的遍历 一、任务描述及要求国际象棋的棋盘有 8×8=64 ...反复地调试和改 进,我觉得算法没有问题了,可是对于某些起始点遍历结果还是不...
热门文档