软件实习总结报告.doc_第1页
软件实习总结报告.doc_第2页
软件实习总结报告.doc_第3页
软件实习总结报告.doc_第4页
软件实习总结报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*约瑟夫环游戏总结报告学生姓名:高娃 学 号:11071202专业班级:计算机11-2指导教师:李晓旭 宫法明 2012年7月14日专业实习报告摘 要游戏自人类出现以后便日渐完善。进入20世纪后,人类进入了电子时代。1958年的秋天,一个物理学家想让他的实验室参观人员提起一点兴趣,就用示波器和实验室里的模拟计算机设计了一个叫“乒乓”(Pong)的小演示游戏。游戏画面之简陋是现在的我们无法想象的,但仍然把在场所有参观者的目光吸引住了,而那批参观者也荣幸的成为了历史上第一批电子游戏玩家。我们选择了开发一款约瑟夫游戏的课题,作为我们实习的内容。这个课题对于我来说是一次大胆的尝试。本次实习所实现的约瑟夫游戏是在MFC搭建的平台下,使用C+语言开发的。我们的游戏提供美观的界面,良好的人机交互。我们的设计目标是我们的游戏能够让玩家在轻松的氛围里,体验到约瑟夫这一问题的游戏魅力,体验其带来的激情与快乐。关键词:淘汰制度,人机交互。 目 录第1章 前言11.1 课题的意义11.2 课题研究的主要内容2第2章 约瑟夫游戏的整体分析与设计32.1 约瑟夫游戏的开发方案32.1.1文献调研32.1.2 模块划分32.1.3 编码实现32.1.4 软件测试4 2.2 约瑟夫游戏的总体设计42.2.1 约瑟夫游戏的功能42.2.2 约瑟夫游戏的构成4第3章 相关技术63.1 游戏界面设计与实现63.2 C+编程63.3 约瑟夫环算法的实现63.4 优化技术8第4章 约瑟夫游戏的详细设计与实现94.1 游戏开始模块94.2 游戏显示模块104.3 游戏结束模块11第5章 总结125.1 所作的工作125.2 存在的问题及今后的工作13参考文献13软件实习报告第1章 前 言1.1 课题的意义本次实习,我们小组在MFC搭建的平台下,使用C+开发语言,开发出了一款约瑟夫环手机游戏。本次课程设计的内容是用单循环链表模拟约瑟夫环游戏,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活,约瑟夫环问题就是用单循环链表处理的一个实际应用。通过这个设计实例,了解单链表和单循环链表的相同与不同之处,进一步加深对链表结构类型及链表操作的理解。 通过该课程设计,能运用所学知识,能上机解决一些实际问题,了解并初步掌握设计、实现较大程序的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。对于周边产业的连动推进可以从索尼公司计划中未来游戏机PS3的硬件构想中看出电子游戏产业对于周边产业的推动作用,电子游戏业还将创造新的休闲生活方式 ,这可以从在游戏机市场居领先地位的索尼计算机娱乐公司SCE的PS2战略上看出 。因此我们选择了开发一款约瑟夫手机游戏的课题,作为我们实习的内容。这个课题对于我们开发小组是是一次大胆的尝试,现成的可供查询的资料很少,可借鉴的成品不多。通过这次实习,我对电脑游戏开发的流程有了一个全面的认识和掌握。经过我们的努力,我们的约瑟夫环游戏从无到有,从粗糙到精细,从简单到复杂,最终成为一款可玩性和耐玩性都很高的游戏。1.2 课题研究的主要内容本次实习所实现的约瑟夫环游戏是在MFC搭建的平台下,使用C+开发语言开发的。要完成游戏预定的功能,需要对以下几个方面进行研究:1.游戏的可玩性:游戏本身通过约瑟夫环这个经典数学问题,过程中增添了许多随机出现的道具,让游戏者能体会到那种快乐和激情,同时给予玩家适当的奖励,增加游戏的可玩性。2.游戏的可操作性约瑟夫环淘汰制游戏,而且面向儿童,要求操作尽可能简单有效,避免复杂的操作,另外必须使玩家的按键得到及时,准确,灵敏的响应。 3.场景的美化:游戏从一开始最先展现给玩家的就是游戏场景了,它的质量直接影响玩家的兴趣,场景的选择也会因玩家的心情而定,在游戏中为玩家准备了两个场景,用来满足玩家的要求,场景的美化工作关系到整个游戏的成功与否。第2章 约瑟夫游戏的整体分析与设计2.1 约瑟夫游戏的开发方案2.1.1 文献调研:这部分工作主要查找有关C+编程以及电子游戏开发两方面的资料。通过对相关资料的理解与讨论,要基本明确C+编程的语法和规范,电脑游戏开发的整个流程。另外, 考虑到本游戏特点诸如面向人群比较小等, 编写程序时还要考虑存储空间等成本的限制,对于相关数据结构的内存分配, 要充分考虑到节省空间的要求。2.1.2 模块划分:游戏开始模块:此模块实现的是动态显示游戏菜单,完成游戏开始前的准备工作,以及对游戏相关信息的查询。游戏控制模块:此模块实现的是数数开始等的操作控制。游戏显示模块:此模块实现的是显示游戏场景的变化,以及以图形化方式动态的显示游戏进行中的各种状况和提示信息。 游戏结束模块:此模块实现的是游戏结束时的各种处理措施,包括显示玩家的成绩和对玩家的奖励等。 2.1.3 编码实现: 开发平台:MFC。开发语言:C+。2.1.4 软件测试:在此阶段与其他同学之间应当不断交流. 测试时先分别对每个模块进行测试, 并设计测试用例来检测程序正确性, 同时对发现的错误进行修改. 模块测试完毕之后再进行组装测试, 此时可以设计一些特殊的测试用例来进行检测, 以达到较高的可靠性要求. 最终测试通过, 形成可以交付的软件并提交相关文档。2.2 约瑟夫环游戏的总体设计2.2.1 约瑟夫环游戏的功能我们的游戏设有动态的开始菜单,各种功能选项完备,提供查询游戏帮助信息,查看历史记录,声音控制等功能,让玩家做好游戏开始前的准备工作。游戏把约瑟夫环着一经典数学问题同电子游戏融合在一起,不仅使人放松了心情,更进一步了解了约瑟夫环这一问题的具体信息。游戏进行中,设有各种图形化和语音化的提示信息,方便玩家的行驶。玩家可调用显示游戏暂停菜单,可保存游戏存档和退出游戏。 2.2.2 约瑟夫游戏的构成游戏的构成采用模块化的划分方式。分为以下几个模块:游戏开始模块:此模块实现的是动态显示游戏菜单,完成游戏开始前的准备工作,以及对游戏相关信息的查询。游戏控制模块:此模块实现的是数数开始等的操作控制。游戏显示模块:此模块实现的是显示游戏场景的变化,以及以图形化方式动态的显示游戏进行中的各种状况和提示信息。 游戏结束模块:此模块实现的是游戏结束时的各种处理措施,包括显示玩家的成绩和对玩家的奖励。第3章 相关技术3.1 游戏界面的设计与实现 应用MFC开发游戏。通过编码和一些美观的图片来实现良好的人机交互界面。3.2 C+编程技术3.3 约瑟夫环算法的实现13 个人围成一圈,从第1 个人开始顺序报号1、2、3。凡报到 “3”者退出圈子。找出出列顺序。求出最后一个出列的人的编号。一:设计排队编号函数,函数参数有 int *p,int n 或 int p,int n 从p开始的n个人,一次编号1到n。 函数原型: void bianhao(int *p,int n); 二:设计出列函数,函数参数:int *p /保存排队的每人编号 int n /排队的人数 int i /从第i个人开始报数 int count /每报到l的人出列 函数原型: void outline(int *p,int n,int iI,int count); 算法如下: 1. 设置计数,工作指针等相关变量: int *q, chu, callnum; /*说明: q 工作指针,表示从头依次指向每个元素,点名 chu 计数器,记录出列的人数 callnum 计数器,记录点名次序 2. 变量初始化: chu=0; /开始出列人数为o,没出列一人,chu增1, 当chu达到总人数n,结束 callnum=0;/各计数器清零 q=h+i-1; /开始时,工作指针指向第i个人的编号 3. 当出列人数chu 总人数n 时,完成一下步骤: 1) 判断若当前指向的数据不等于0,表示有效数据,计数器callnum增1 2) 判断计数器callnum是否数到 count, a. 若数到count,则打印当前q所指的编号,表示出列 。b. 出列人数chu增1 c. 判断若是最后一个人出列,这把这个编号存在开始位置,返回。 d. 若出列人数是10的整数倍,则换行 。e. 将当前出列的数据置成0,表示这个数据已经出列。 f. 工作指针q移向下一个人,即下一个数组元素。g. 判断若q移到最后一个元素的后面,则让q指向地址开头继续报数 三:主程序 1 定义int aN; 用数组模拟队列,每个元素代表一个人。 2 调用排队编号函数 进行编号。 3 调用出列函数进行数数,出列。 4 将数组中第一个元素的数据打印出来,这就是最后出列的人的编号。3.4 优化技术 手机属于受限设备,有限的输入能力,受限的内存和堆大小,屏幕大小和分辨率有限,很慢的CPU。它的这些特性决定了开发手机游戏时必须考虑到这些特性。游戏文件的大小在很大程度上取决于图形文件的大小,而且手机屏幕的分辨率有限,因此我们在保证图象显示质量的前提下,减小图形文件容量的程度很大。Image Optimizer是一款非常好的图形优化软件,可以将手机唯一支持的PNG格式的文件利用Image Optimizer独特的MagiCompress压缩技术最佳化。 屏幕显示对象的刷新率如果设置不好,由于各种图形加载显示的时间有先有后,玩家会感到屏幕的闪烁。因此合理的设置各种显示对象的显示顺序是十分必要的,因为游戏的好坏在很大程度上取决于游戏场景显示的协调的程度。第4章约瑟夫游戏的详细设计与介绍4.1游戏开始模块 (1)主程序模块 Void main() 初始化; do 接受命令; 处理命令; while(“命令”=“退出”); (2)创建链表模块 Static void creatlist(行参) 初始化; For 接受命令; 处理命令 (3)输出链表信息模块 static void PrntList(参数) 定义变量并初始化; 输出命令; (4)删除结点也就是出队模块 static void StatGame(参数) 定义变量并初始化; While 开始报数; 输出结果;4.2游戏显示模块4.3游戏结束模块第5章 总结5.1 所做的工作通过两周的课程设计之后,培养了我选用参考书,查阅手册及文献资料的能力,培养独立思考,深入研究,分析问题、解决问题的能力,提高综合运用本课程所学知识的能力,还对设计的基本过程的设计方法、步骤、思路、有一定的了解与认识,并对存储结构,比如线形表、链表、循环链表、树、图等存储结构,特别是对单循环链表理解的更深。也使我认识到数据结构这门课程是计算机程序设计的重要理论技术基础,在我们计算机专业的学习中占据着十分重要的地位。同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。 本次课程设计的主题是用单循环链表来模拟约瑟夫环游戏,由于刚开始对循环链表的理解不够,也没理请约瑟夫环的基本思路,做起来有点难,但通过反复的修改,最终还是能够理解。 我学到了很多的东西,通过实际编译系统的分析设计、编程调试,也掌握了一些工程设计方法。现在也能够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制程序框图。课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。 在这次课程设计中我遇到许多问题和麻烦。比如,表建成之后,不能输出表中的信息,说明指针的值没传成功,经过把链表的头指针转为二级指针,传值成功。 是由于老

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论