俄罗斯方块的设计报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC++课程设计报告 设计题目: 俄罗斯方块 学 院: 太原工业学业 专业班级: 1020562 学生姓名: 王鲁恒 学生学号: 28 指导教师: 韩燕丽 目录 一、 课程设计的目的与要求 3 1.1课程设计的目的 3 1.2课程设计的要求 3 1.3选题背景 3 二、 游戏的分析与设计 4 2.1需求分析 4 2.1.1 游戏需求 4 2.2.2游戏界面需求: 4 2.2.3游戏形状(方块)需求: 4 2.2算法分析 4 2.2.2概要流程图 5 2.2.2定义方块的数据结构 6 2.2.3 游戏设计分析 7 三、程序主要功能的实现 7 3.3游戏功能的实现 7 .3.3.1游戏界面 7 3.3.2生成方块 8 3.3.3方块变形 8 3.3.4方块显示 9 3.3.5消行 9 3.3.6暂停退出 10 四. 程序测试 10 五.总结与体会 12 六.附录一(参考书) 12 七.附录二(程序源代码) 12 用VC++实现俄罗斯方块的程序设计 课程设计的目的与要求课程设计是一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、 软件设计技术和设计思想的理解,并能运用所学知识通过本课程设计简单系统开发,掌握软件设计的方法,提高学生的综合应用能力。 要求用VC++设计与实现俄罗斯方块游戏。要求包括系统的需求分析;系统总框图及每个模块的设计分析;算法的设计与实现;游戏的内部实现;游戏区域绘图的实现;系统存在的问题及错误处理;列出所有定义的函数及说明;附上程序源代码。2.1.1 游戏需求 随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,若在游戏中各形状填满了给定区域,为输者。 游戏界面需求:良好的用户界面,。让方块在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。 游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆 时针变形,一般为逆时针。算法分析定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用一个4×的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一子块的位置,也就是说,用4个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y),而每个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编号 [2] 。 图 Diamond [0][0]和Diamond [0][1]则是第0号方块的横坐标x和纵坐标y ;Diamond [2][0]和Diamond [2][1]则是第2号方块的横坐标x和纵坐标y。 游戏设计分析Diamond标记,在程序运行生成方块时,调用Diamond[4][4]语句,确定当前要显示的是哪一个方块形状。而在实际运行中,第一次需要调用两次生成方块函数Draw (),将先产生的赋给游戏当前方块,第二个赋给预览图方块。以后每次产生一个方块,把预览方块赋给当前方块,把新产生的赋给预览方块 图3-3-2 3.3.3方块变形 俄罗斯方块的特点就在于通过方块的变形拼满整行来消去该行方块从而使游戏可以继续下去,很难想象不能变形的俄罗斯方块是什么样子。而变形的过程就是根据当前方块形状改变方块的相对位置,这样就可以改变方块的形状了。在程序中每当按下C键,程序判断可以变形后,根据当前方块的形状序号Diamond[4][4]和变化形状序号TurnOver()调用相应的方块数值赋给draw()函数,通过刷新重画就可以显示变化后的方块了。 3.3.4方块显示 以上方块的操作都是数据层面的操作,而真正要在游戏窗口中看到数据的变化,还必须把方块不断的绘制出来。这就是Draw()函数的作用。把当前运动的方块对应节点存储在一个4*4数组里,变形和生成方块的过程就是更新该数组数据的过程。然后在draw()函数里检测数组的各个值,并控制光标跳到一定位置,画出“■”组成方块。具体方块对应数组数值关系如图3-3-4所示。 图3-3-4 3.3.5消行 游戏玩家拼满一行后,程序消去满行,。中当一个方块下落停止后,程序检查方块是否充满了游戏区域,如果是结束游戏。不是,则判断是否构成消行条件,从下落方块的最低点依次向上检查是否可以消行。如图3-3-5所示

文档评论(0)

mx597651661 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档