收藏 分享(赏)

硬币游戏.doc

上传人:wspkg9802 文档编号:6316703 上传时间:2019-04-07 格式:DOC 页数:7 大小:74.50KB
下载 相关 举报
硬币游戏.doc_第1页
第1页 / 共7页
硬币游戏.doc_第2页
第2页 / 共7页
硬币游戏.doc_第3页
第3页 / 共7页
硬币游戏.doc_第4页
第4页 / 共7页
硬币游戏.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、数据结构姓 名: 专业班级: 学 号: 指导教师: 成 绩: 2010 年 12 月 22 日XXX 学院XX 理系1目 录目 录 .11. 硬币游戏表示及其运算的实现 21.1 需求说明 .21.2 功能描述 .21.3 系统设计 .21.4 程序运行与结果 .32.总结与分析 .43 附 录 (代码) .4附录 1 一元多项式的表示及其运算程序源代码 421. 硬币游戏表示及其运算的实现1.1 需求说明在游戏开始之前,在桌上将三个硬币放置成一条直线。游戏开始的时候,中间一个硬币是背面朝上,其他两个硬币是正面朝上。游戏目标是改变硬币的摆放形式,让中间一个硬币正面朝上,其他两个硬币背面朝上。具

2、体规则如下:(1) 任何时候都能翻转中间的硬币(从正面翻成背面或相反)(2) 当另外两个硬币都是正面或都是背面的时候能够翻转一端的硬币(从正面翻成背面或相反) ;不能通过任何其他方式翻转硬币,如平移它们。但是,只要满足这些规则,你就能够翻转硬币1.2 功能描述在不违反游戏规则的前提下,能将三枚硬币按照客户的意愿从一种状态转换成另一种状态,中间的每一步在运行结果中显示;如果状态不可转化,则在运行结果中说明。1.3 系统设计使用无向图,图中每个顶点代表三个硬币的一种状态(8 种状态对应 8个顶点,一个状态可用一个字符串表示,如”+ - +”表示了一个中间一个硬币是背面朝上,其他两个硬币是正面朝上的

3、状态) ;当使用其中一条规则能在两个状态之间来回移动时,就通过一个边连接无向图的两个顶点。三枚硬币的八种状态类似与三位二进制数排列一样,可以先求出它的邻接矩阵,每种硬币的状态可用 0、1、-1 表示,0 代表本身状态,1 代表可以转化为下一状态,-1 代表不能转化。应用指针指向每种状态,若初始状态可以转化为目标状态,转化过程在结果中输出。31.4 程序运行与结果42.总结与分析这次实训我做的是一个简单的翻硬币游戏,按照要求该程序只需按照规则改变硬币的状态。本来能够在次基础上更加细化程序,使其有更多的功能。但由于能力有限,再加上其他科目考试等原因,没能实现。通过这次实训,我也认识到了自己的一些缺

4、陷,没能清楚的理解 TC3.0 和 VS6.0 这两种编译工具不同。要写好程序,还需对编译工具有更深一部的了解。3 附 录附录 1 硬币游戏的表示及其运算程序源代码#include #include #include #include char A88= 0, 1, 1,-1, 1,-1,-1,-1,-1, 0,-1, 1,-1,-1,-1,-1, 1,-1, 0, 1,-1,-1, 1,-1,-1, 1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1, 0,-1, 1,-1,-1, 1,-1,-1, 1, 0,-1, 1,-1,-1,-1,-1, 1,-1, 0,-1,-1,-1

5、,-1, 1,-1, 1, 1, 0;char visited8=0,0,0,0,0,0,0,0;char path8=-1,-1,-1,-1,-1,-1,-1,-1;int len=0;char transform(char str)if(strcmp(“-“,str)=0) return 0;if(strcmp(“-+“,str)=0) return 1;if(strcmp(“-+-“,str)=0) return 2;if(strcmp(“-+“,str)=0) return 3;if(strcmp(“+-“,str)=0) return 4;if(strcmp(“+-+“,str)=0

6、) return 5;5if(strcmp(“+-“,str)=0) return 6;if(strcmp(“+“,str)=0) return 7;return -1;void print(char state)switch(state) /case -1:printf(“ERROR“);break;case 0:printf(“-“);break;case 1:printf(“-+“);break;case 2:printf(“-+-“);break;case 3:printf(“-+“);break;case 4:printf(“+-“);break;case 5:printf(“+-+“);break;case 6:printf(“+-“);break;case 7:printf(“+“);break;void search(char state)int i;visitedstate=1;pathlen+=state;if(state=transform(“+“)/目标状态for(i=0;i06visitedstate=0;path-len=-1;if(Astatei=0/ else/ printf(“n“);int main()char str=“-“;/?-跏甲刺?search(transform(str);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 游戏攻略

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报