C语言俄罗斯方块试验报告,包括源程序__精品.doc

C语言俄罗斯方块试验报告,包括源程序__精品.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言俄罗斯方块试验报告,包括源程序__精品

实验内容 游戏程序----俄罗斯方块 指导老师 李陶深 实验题目 设计完成俄罗斯方块游戏。游戏开始后在游戏小窗口的顶部会随机产生一个方块并以一定的速度下移,下移过程玩家作变换、左右移操作以使其摆放合适,当叠满一行时会自动消去并计10分,若不能消行而叠到游戏小窗口的顶部则游戏失败,此时玩家可退出或重新开始。 实验要求与目的 游戏界面合理,进入游戏后应有操作说明。要求: ⑴按任意键开始游戏,随机产生方块并自动下移 ⑵用Esc键退出游戏,R键可重新开始游戏 ⑶用  键变换方块 ⑷用  键和  键左右移动方块 ⑸用  键使方块加速下移 ⑹用空格键使方块直接下移 ⑺能正确判断满行并消行、计分、定级别 ⑻能正确计时 ⑼设定游戏为五个级别,级别越高难度越大 目的是通过设计完成俄罗斯方块游戏,加深对计算机图形学的认识并在实践中加以应用,此外进一步熟悉应用编程语言。 实验环境 硬件:CPU--------------AMD AthlonXP 1800+ 内存--------------DDR333 256M 硬盘--------------40G 显示卡-----------Max440 64M 128bit 显示器-----------17寸彩显 软件:OS----------------Windows XP 开发工具--------Tubor C 2.0 系统的设计思想 系统的体系结构 本系统主要由主函数、方块的产生与清除、方块的变换与移动、消行与计分、计时这五大模块组成,其中方块的变换与移动模块是本系统中的关键模块,也是最为复杂的模块。详情请参考以下的结构图: 俄罗斯方块的体系结构图 模块的功能 下面将具体介绍各模块的功能: 主函数模块 本模块主要是初始化图形显示模式,定义游戏说明窗口以及游戏窗口的界面,还有计分、计时、定级别窗口的设定。当然应有对其它子模块的调用,如:方块的产生与清除、方块的变换与移动、消行与计分、计时等模块。 方块的产生与清除模块 本模块有两大功能:产生方块、清除方块,分别由void turnUnit(int x,int y,int n)、void clrTurnUnit(int x,int y,int n) 来完成。它们的三个参数中的X与Y表示操作所在的位置,N决定方块的形状(X、Y、N在以后出现的函数中意义相同,将不在重述)。由于每个方块都是四个小方格组合而成,我编了小方格的产生、清除子函数void fangKuai(int x0,int y0)、void clrfangKuai(int x0,int y0)来给上面两个函数调用。x0、y0 表示操作所在的位置。 方块的变换与移动模块 本模块负责方块自动下移,在下移过程中方块的变换、左右移动、加速下移、直接下移的操作,由int move(int x,int y,int n)来完成。 stopB()检测方块可下移时move()将循环检测有无键盘输入,若无输入方块自动下移一小格;否则判断输入是什么,向上方向键则方块顺时针旋转变换一次,向左方向键并且stopL()检测方块可左移则方块向左移一小格,向右方向键并且stopR()检测方块可右移则方块向右移一小格,向下方向键则方块向下移一小格,空格键则直接下移。 消行与计分模块 当一个方块不能移动时需调用本模块clrLine()。本模块将从该方块的最下面小方格所在行开始到最上面小方格所在行结束,从左到右判断每一行是否满行;若满行则消行并且下移该行以上的已填充的小方格,然后调用计分函数,计分函数将给全局变量f加1,此时游戏所得的分数sc为fX10。由于文本输出函数outtextxy()是输出字符串而不支持变量输出,但分数sc是变量,于是用间接的办法:把分数sc的值sprintf()函数存到字符数组buf[3]所在的地址中,由于字符数组中的值相当于字符串,于是用outtextxy()输出便可,字体颜色是红色RED。其实在输出新的分数之前要先把旧的分数擦去,方法也很简单:用刚才说的办法把旧分数再输出一次,不过这次字体的颜色是背景色GREEN。计分函数还有一个与分数紧密相关的操作定游戏的级别,共分为6个级别:0分到300分为0级,0分到300分为0级,300分到700分为1级,依此类推,1800分到2500分为4级,超过2500分为5级。可以看到,除了每一级要求的分数都比上一级多100分外,方块的自动下移速度也加快(0级的1/13)以增加游戏的挑战性。 计时模块 本模块主要是计算游戏所用的时间,由函数coutTime()完成。游戏开始后,首

文档评论(0)

seunk + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档