




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈 阳 工 程 学 院信 息 学 院C语言程序设计实践课 程 设 计设计题目: 俄罗斯方块游戏 系 别 班级 学生姓名 学 号 指导教师 职称 副教授/讲师 起止日期: 2016年12月16日起至 2011年01月06日止沈 阳 工 程 学 院 信 息 学 院 C语言程序设计实践 课程设计成绩评定表系(部): 物联网工程系 班级: 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分沈 阳 工 程 学 院 信 息 学 院 C语言程序设计实践 课程设计成绩评定表系(部): 班级: 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分沈阳工程学院信息学院C语言程序设计实践课程设计任务书 课程设计题目: 俄罗斯方块游戏 系 别 班级 学生姓名 学 号 指导教师 职称 副教授、讲师 课程设计进行地点: 实训楼F六楼机房 任 务 下 达 时 间: 2016年 12 月 14 日起止日期:2016年12月16日起至2016年01月06日止系主任 2016年 12 月 09 日批准一、 课程设计的原始资料及依据查阅有关资料,进一步理解面向对象程序设计的思想,并编写一个简单的应用程序系统。通过本设计可以加深理解使用结构化程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求设计内容:1. 游戏信息:俄罗斯方块,四种方块,可以移动;2. 游戏功能;方块的形状变化,满行消减等功能3. 可分别添加、删除、查询;4. 有能力的需要保存。设计要求:1. 要求利用结构化的方法完成系统的设计;2. 要求在设计的过程中建立清晰度层次结构;3. 设计功能满足要求、易于操作的友好界面;4. 界面中需有菜单;5. 在系统的设计中,至少要建立5个以上独立函数;6. 要求操作简单,用户界面友好。7. 运行程序,检查结果是否和理论值一致。8. 在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤2第2天需求分析3第3天概要设计4第4-5天详细设计5第58天编码、调试6第9-10天程序答辩,撰写课程设计报告六、主要参考资料(文献)1谭浩强.C程序设计(第三版).北京: 清华大学出版社.20062陈天洲.C语言高级程序设计. 北京:人民邮电出版社.2002 3杨旭.C语言程序设计案例教程.北京: 人民邮电出版社.20054郭翠英.程序设计案例经典.中国水利电力出版社.20045谭浩强.程序设计基础.北京:清华大学出版社.20046张翔.C语言函数大全 电子工业出版社.20057王为青.C语言高级编程及实例剖析.北京:人民邮电出版社.2008.028徐慧.C语言实例解析精粹.北京:人民邮电出版社.2006.049姚大鹏 栾好利 张翼英 等编著.C语言程序设计教程习题与上机实训指导.中国水利水电出版社.20052课 程 设 计 任 务 分 工组长姓名 题目俄罗斯方块游戏项目组成员个人任务描述自我评定 程序的注释以及材料编写良好 函数的查找与调用良好沈阳工程学院课程设计报告 目 录目 录第1章 绪 论11.1开发背景及其开发意义11.2需求分析1第2章 系统开发环境22.1开发环境描述22.1.2系统总体功能设计22.1.3操作设计22.1.4 系统说明(帮助)功能42.2模块实现的功能4第3章 系统分析63.1算法分析63.1.1定义方块的数据结构63.2程序流程图6第4章 系统实现与调试84.1调试过程:错误信息和解决方法84.2系统运行的结果8结 论25致 谢26参考文献27 I沈阳工程学院课程设计报告 第1章 绪论第1章 绪 论1.1开发背景及其开发意义在现代信息高速发展的时代,电子游戏已经成为人们生活中不可缺少的一部分,也是老少皆宜的娱乐方式。在电子科技还不是很发达的中国,游戏的发展还是受到技术的限制,随着游戏行业的迅速发展,游戏研发称为国家科技和经济上重大的突破方向。掌上游戏机和电视游戏机在80年代和90年代风靡一时,此时由苏联人阿列克谢帕基特诺夫制作的俄罗斯方块在掌上游戏机和电视游戏机上流行,其造成的轰动和经济价值成为游戏史上的大事。俄罗斯方块是一个老少皆宜的小游戏,它实现由四个正方形的色块组成,然后存储于一个数组的四个元素中,计算机随机产生七种不同类型的方块,根据计算机时钟控制他在一定的时间不停地产生,用户根据键盘的四个方向近些年向左、向右、向上、向下,翻转操作。然后程序根据这七种方块折叠成各种不同的类型。基于Windows的游戏设计方式很多,如基于Java的跨平台设计,基于.net平台的设计,基于JAVA的设计由于运行在虚拟机上运行,效率比较低;而.net的设计通用性不是很好,为了避免这些缺点,本文采用EVC在ARM平台上进行设计来完成俄罗斯方块游戏。1.2需求分析俄罗斯方块是一个比较简单的游戏。它游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转,如果某一行被方块充满了,那就将些行消掉;而当窗口中无法再容纳下落的方块时,就宣告游戏的结束。游戏的需求分析如下:界面设计需求:(1) 实验功能需求虽需要的按钮(2) 显示积分和等级的文本(3) 下一个方块下落提示界面,需要用不同的颜色表示(4) 游戏运行界面功能需求:(1) 实现各种方块的生产,包括形状和颜色等信息;(2) 实现各个方块的上下左右移动和旋转的功能(鼠标操作和键盘操作)。(3) 实现消行的功能;(4) 实现得分的统计功能;(5) 实现开始,暂停,结束等功能;1沈阳工程学院课程设计报告 第2章 第2章 系统开发环境2.1开发环境描述俄罗斯方块游戏软件基于ARM的wince5.0平台,利用PXA270RP实验箱模拟仿真器,利用evc编程来具体实现,在实验箱的触摸屏上进行游戏。嵌入式系统作为芯片和软件的集成体,在科学研究、工业控制、军事技术、医疗卫生、消费电子等方面有着普遍的应用,此软件基于ARM处理器和windows CE 的研究平台,windows CE是由优先级的多任务操作系统它允许多重功能、进程,在相同的时间系统中运行Windowns CE 支持最大的32位同步进程,微软Windowns CE被设计成针对小型设备的通用操作系统,它可以通过设计一层位于内核和硬件之间代码来设定硬件平台。嵌入式工具包包括设备驱动器(DDK)和软件开发包(SDK),DDK提供了关于写驱动器的附加文本,SDK提供库、头文件、样本代码、文本以允许,开发者对基于Windowns CE的平台进行写操作,Windowns CE提供了相同的程序界面,以用来为其他的视窗操作系统开发功能。2.1.2系统总体功能设计首先需要对俄罗斯方块的设计和功能需求进行详细的了解和分析,一个具有功能完全满足基本需要的系统需要包括以下几个功能模块。如图2-1所示是俄罗斯方块总体设计功能图。 2.1.3操作设计操作设计包括:游戏开始结束暂停操作设计:在游戏界面上有开始、结束、暂停按钮,用鼠标操作,选择是否要进入游戏。方块形状转换操作:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。如表2-1-1所示俄罗斯方块定位点设置表俄罗斯方块定位点设置,以黑色点为(0,0)坐标状态类型12341zzzzzzzz2zzzz3 z zzzz zzzzzzz zzz z4z zzzzzzzzzz zzzzz5 zzzzzz zzzzzzzzzz6zzzzzzz z7zz zzzzzz表2-1-1 俄罗斯方块方块形状图键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。消行操作:当方块落到游戏界面最底部并且铺满最后一行,就能消去所在这一行,积分增加100分,而积分增加到一定数值时,玩家等级增加。积分等级记录设计:随着玩家对游戏的熟悉程度,对游戏的掌握程度,当玩家进行操作所消的行数越多,积分增加得越多,玩家等级也随之增加。2.1.4 系统说明(帮助)功能在此功能中需要完成的功能有:提供给用户系统使用的的详细说明和玩家如何玩游戏的详细说明,以便玩家熟练的操作此游戏。使用说明:俄罗斯方块的基本规则是移动(向左、向右、下移),旋转和摆放游戏自动的输出的各种方块,使之排列成完整的一行或者多行并且消除得分,由于上手简单,老少皆宜,从而家喻户晓,风靡世界。游戏帮助:打开游戏时,点击“开始”按钮就可以开始游戏了,游戏过程中可以点击“左”“右”“下”“转换”按钮对随机出现的方块进行操作,使之排列成整行从而得分;得分越高,等级越高,方块下降的速度也会随着等级的增加而加快。2.2模块实现的功能(1) 绘图刷新模块:在此模块中可以绘制新的方块模型void trsInit() /定义空类型:转换为二进制 int sp84 = 15,4369,23,785,116,547,71,275,113,802, 39,305,114,562,54,561,99,306,51,51,-1;/方块形状int *p, i, j, b; for (p = sp0; *p = 0; +p) if ( *p = 0 ) *p = p-2; gt.pool = >._pool4;/我们需要在原来的pool的界外用-1值填充,以便后面做碰撞检测减少不必要的代码 for (j = 0; j 7; +j) for (i = 0; i 4; +i) for (b = 0; b = 1; memset(gt._pool, -1, sizeof(gt._pool);/替换并返回 for (i = 0; i 10; +i)/i 10决定了游戏池的宽度为10 memset(>.pooli, 0, sizeof(int21);/就是初始化pool,sizeof(int21)决定了游戏池的高度是20 return ;/memset也是为了免写二重循环(2) 开始结束暂停按钮的操作功能:实现对游戏的控制if (k = S | k = s | gt.t 0; -y)/开始是消行计算 for (x = 0; gt.poolxy 0; +x); if (gt.poolxy 0; -k) for (x = 0; gt.poolx0 = 0; +x) gt.poolxk = gt.poolxk-1; return 1;/如果是1就继续循环 (3) 方块的旋转操作:按向上的键就会使方块的旋转else if (k = W | k = w) if (trsCopy(gt.tmapgt.s(gt.st+1) % 4, gt.x, gt.y, 0) gt.st = (gt.st+1) % 4;5沈阳工程学院课程设计报告 第3章 第3章 系统分析一、 系统的详细设计与实现3.1算法分析3.1.1定义方块的数据结构对于方块在某一瞬间的位置的标识,我们采用了4*2的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一个字块的位置,也就是说,用4个存储空间存储当前下坠唔的每一个字块的位置进行标识,而每一个存储空间的大小就是一个点的坐标值(x,y),二每个方块按照从左到右的方式进行编号,并且在编号的过程中对于同一列的方块实行从上带下进行编号,如图所示3-1:图3-1示例方块的表示方法:即四个小方块的坐标设定,其中一个方块是原点,坐标为(0,0);右侧方块坐标(1,0);下面的方块坐标(0,1),以此类推。3.2程序流程图如下图3-2所示,为程序流程图:图3-2 程序流程图13沈阳工程学院课程设计报告 第4章 第4章 系统实现与调试一、 系统实现与调试4.1调试过程:错误信息和解决方法开发俄罗斯方块程序中,要解决的技术难题如下:1 错误信息:C:UsersqingxueDesktop brickbrick.rc(10) : fatal error RC1015: cannot open include file afxres.h. 解决方法:C:WINCE500OTHERSMFCINCLUDE路径添加到Microsoft eMbedded Visual C+ 4.0中ToolsOptionsDirectoriesinclude files下即可。2 错误信息:LINK : fatal error LNK1104: cannot open file mfcs42d.lib解决方法:C:WINCE500OTHERSMFCLIBX86路径添加到Microsoft eMbedded Visual C+ 4.0中ToolsOptionsDirectoriesLibrary files下即可。3 下落时,如果确定方块是否可以下落,即是否已经落到“地”if(GameState=RUNNING) if(Isbottom()/如果未到底 RefreshBricks();/刷新for(int i=0;i4;i+)CurrentBricki.x+;/方块下降X增加else /如果到底了IsGameOver();CanEraseALine();/消去一行DrawNextBrick();/绘制下一个方块以提示 GenerateABrick();/生成新的方块 Number0=Number1; CreateNumber();/获取随机的数据myDraw();4.2系统运行的结果(1) 游戏开始:点击游戏界面上的开始按钮,玩家就可以进行游戏的一系列操作。如图4-2所示图4-2游戏开始运行界面(2) 方块转换及下一个方块提示:点击界面上转换按钮或者按键盘上向上的按钮,都会使当前方块变换形式。如图4-1和4-2所示为方块形状转变前后的情形。图4-1方块变换前视图图4-2方块变后前视图(3) 消行及积分累加等级变化操作:当当方块落到游戏界面最底部并且铺满最后一行,就能消去所在这一行,积分增加100分,而积分每增加500时,玩家等级增加1。如下图所示为消行前后游戏运行图以及积分等级变化图:图4-4 消行前游戏运行图图4-5 消行后游戏运行图(4) 游戏结束:当方块累计顶到游戏运行界面上方边缘的时候,就结束游戏。图4-8游戏结束图二、 程序代码#include #include #include #include #include char gcText = 1LJTSZ#;struct tetris int _pool1632, (*pool)32, tmap8416; int x, y, s, st, t;gt;void trsInit() int sp84 = 15,4369,23,785,116,547,71,275,113,802, 39,305,114,562,54,561,99,306,51,51,-1; int *p, i, j, b; for (p = sp0; *p = 0; +p) if ( *p = 0 ) *p = p-2; gt.pool = >._pool4; for (j = 0; j 7; +j) for (i = 0; i 4; +i) for (b = 0; b = 1; memset(gt._pool, -1, sizeof(gt._pool); for (i = 0; i 10; +i) memset(>.pooli, 0, sizeof(int21); return ;int trsCopy(int sp, int x, int y, int c) int i, cx, cy; for (i = 0; i 2); if (gt.poolcxcy) if (c = 2) gt.poolcxcy = 0; else return 0; if (c=1) gt.poolcxcy = spi; return 1;int trsScene() int x, y = 0; COORD pos = 0; gt.s = rand() % 7 + 1, gt.st = gt.t = 0; gt.x = 3, gt.y = 0; for (-gt.t; ; Sleep(1), -gt.t) int k = 0; while (kbhit() k = getch(); if (k = 27) return 0; if (k = A | k = a) if (trsCopy(gt.tmapgt.sgt.st, gt.x-1, gt.y, 0) -gt.x; else if (k = D | k = d) if (trsCopy(gt.tmapgt.sgt.st, gt.x+1, gt.y, 0) +gt.x; else if (k = W | k = w) if (trsCopy(gt.tmapgt.s(gt.st+1) % 4, gt.x, gt.y, 0) gt.st = (gt.st+1) % 4; if (k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机加工检验管理办法
- 无纸化考勤管理办法
- 原产国标识管理办法
- 智慧出租车管理办法
- 南水北调渠管理办法
- 蛋白质分离技术-层析课件
- 机具租赁站管理办法
- 备件积压件管理办法
- 政府物业化管理办法
- 月度考核会管理办法
- 深入浅出:2025年HTRI培训教程解读
- 财务岗位招聘笔试题与参考答案(某大型国企)2025年
- 《四川省信息化项目费用测算标准》
- DB510100T 203-2016 球墨铸铁可调式防沉降检查井盖
- 多发伤的急救护理课件
- (高清版)DB41∕T 2315-2022 农村房屋不动产测量规范
- 指甲-髌骨综合征的临床特征
- 外研版八年级上册英语期末复习:阅读理解 刷题练习题30篇(含答案解析)
- 2023-2024 中国滑雪产业白皮书
- 田径场地及器材
- 职业道德题库试题及答案
评论
0/150
提交评论