俄罗斯方块实验报告_第1页
俄罗斯方块实验报告_第2页
俄罗斯方块实验报告_第3页
俄罗斯方块实验报告_第4页
俄罗斯方块实验报告_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

程序设计实践报告(2012/2013学年第二学期)主题:俄罗斯方块游戏设计专业贸易学生的名字类数指讲师指单比特软件工程系日期:2013年3月27日绩效评估参考标准:程序设计实践环节分为五个等级,即:优秀,良好,中等,通过,失败。根据程序设计实践过程,学生的成绩评定如下:学习态度是否正确,实验课前的准备是否充分,课题要求的功能是否实现,算法设计是否合理,编程语言是否熟练,用户界面设计是否科学,程序设计练习报告是否完成(包括:内容是否详细,文字表达是否流畅,格式是否符合规范,程序注释是否具体),答辩表现,出席情况等。简短的评论教师签名:2013年3月27日评级尺度俄罗斯方块游戏设计一、课题的内容和要求这个程序的主要任务是写一个简单的俄罗斯方块游戏,它需要一个相对漂亮和声音的游戏界面。它可以实现基本的功能,如方块预览,方块控制,显示更新,分数更新和帮助,减少程序本身的错误,提高游戏的可操作性。程序的设计将结合一些以前没有涉及到的与C语言图形界面设计相关的内容。需要利用这个机会以相对简单的方式理解相关内容及其简单的应用。该程序的实现是以Windows XP/7操作系统和微软Visual Studio 2008 C为编译器,用C语言完成编程实践。利用Win32控制台应用程序,最终在DOS界面下形成程序的主界面。二。轮廓设计结构/此结构编号表是打印每个方块的基础。/是程序设计的灵魂int vary _ x4;国际机场4;变化=0,2,4,6,0,0,0,0,0,0,0,0,0,-1,-2,-3,0,2,2,0,0,0,-1,-1,0,-2,-2,-4,0,0,-1,-1,0,0,2,2,0,-1,-1,-2,0,2,2,4,0,0,-1,-1,0,0,-2,-2,0,-1,-1,-2,0,0,2,4,0,-1,0,0,0,0,0,2,0,-1,-2,-2,0,0,-2,-4,0,-1,-1,0,2,2,2,0,0,-1,-2,0,2,4,4,0,0,0,-1,0,-2,-2,-2,0,0,-1,-2,0,0,2,4,0,-1,-1,0,0,0,-2,0,-1,-2,-2,0,2,4,2,0,0,0,-1,0,0,2,0,0,-1,-1,-2,0,-2,0,2,0,-1,-1,0,0,-2,0,0,-1,-1,-2,;在该程序中,正方形的颜色和移动速度都是以数组常量的形式,数组的个数分别对应于正方形的个数,使得“正方形的正方形颜色的移动速度”一一对应,更加直观方便地实现了动态管理。常数=11,15,12,12,10,10,9 ;/控制盒子的颜色速度常数=0,12,9,6,3,1 ;/控制箱子的下落速度常量整数=0,2,3,5,7,11,15 ;/相应框的类型号该程序的主要部分是通过多层调用多个函数来实现的,主要由以下九个函数组成:无效打印下一个(int pkind)/此功能控制“下一个图形预览”中的方形样式,是整个程序的“向导”和“先锋”。它将指导程序的动态实现,并将决定对下列函数的调用空隙直线下降(深度)/功能控制箱在整个程序中起着至关重要的作用,是连接具体子功能实现的整个动态过程的“纽带”。空选择方向(int *prev_count)/此功能实现了小方块的键盘控制。在小广场倒塌的过程中,必须随时对其进行“监控”。因此,在函数中,每当一些变量改变时,就调用这个函数。无效循环(int *prev_count)/此功能控制盒子的旋转。该功能必须连接到,即每次按下键盘时,必须检查是否按下了“”键。如果按下,功能立即执行,方块翻转。空隙水平移动()/此功能控制盒子的移动方向。该功能类似于第四个功能,也附在上。 void GetDepth(int *pdepth)/这个函数可以得到小方块的累计高度,从而判断小方块是否已经落下。这个函数是一个需要在很多地方调用的函数。无效检查边界()/此功能可以控制和防止块越界。一旦有可能越过边界,先前的方向控制就无效,当方块左右移动并改变形状时需要调用此函数。void CheckFull(int *pscore)/检查一行是否被完全覆盖。如果一行完全填满,立即向下移动。(2)函数结束时,立即调用该函数 void GameOver()/也就是说,当深度为0时,游戏结束,并显示动态结束屏幕。在函数的开头,立即调用该函数程序流程图大致如下:注意:程序的流程图有点复杂,但其实质仍然是使用顺序、选择和循环。唯一的复杂性是,循环的主体不再是一个简单的程序语句,而是一个更加复杂的功能,这将使程序的结构更加混乱。然而,如果绘制出流程图,很明显问题仍然很简单。四.关键源代码对于(I=0;i4;(I)gotoxy(x varypkind)。,普金。(i );puts();/此循环用于根据上述数字表打印各种小方块,是本程序中最基本的语句块Void GameOver() /此功能用于实现游戏结束后的动画效果。颜色(391);对于(int i=31I=0;I-)/用两层循环打印主界面框对于(int j=0;j17j)gotoxy(36-j*2,3 I);puts();睡眠(5);/延迟函数的调用使得最终的程序接口更加动态。颜色(背面);对于(int j=0;j31j)对于(int I=0;i17(I)j。具有=0;goto xy(4 2 * I,j 3);puts();睡眠(5);无效旋转(int *prev_count) /控制盒子的旋转。这个函数是整个程序代码中最难的部分int I;before . x=current . x;before . y=current . y;(* prev _ count);(*前一个计数)%=连接pri_kind。总和;电流x=电流x连接pri_kind。connection _ x* * prev _ count;电流y=电流y连接pri_kind。连接_ y* * prev _ count;检查边界();/调用检查边界函数,防止块在循环过程中脱离程序接口。对于(I=0;i4;(I)int m=(当前. x-4变化数pri _ kind* *前一个_count。vary _ xI)/2;int n=当前. y变化数pri _ kind* *前一个_count。vary _ yI-3;如果(登上mn。具有|m16|m0|n31)电流x=电流x-连接pri_kind。connection _ x* * prev _ count;电流y=电流y-连接pri_kind。连接_ y* * prev _ count;revolve=0;(* * prev _ count)-;before . x=current . x;before . y=current . y;返回;颜色(背面);/旋转前用背景色覆盖正方形对于(I=0;i4;(I)如果(之前)你改变了类型。2)gotoxy(前. x变类型)。I,以前是类型。(i );puts(“”);kind=数字pri _ kind* * prev _ count;颜色(普里_金德上校);/打印旋转后的新方块对于(I=0;i4;(I)如果(当前. y变化类型)。2)gotoxy(当前. x不同的类型)。I,当前版本,类型。(i );puts();睡眠(速度排名);/根据坡度确定旋转和下落的速度。before . x=current . x;before . y=current . y;Int main() /主函数是一个将所有子函数连接在一起的工具。srand(无符号长)时间(0);gotoxy(5,5);printf(一切就绪,游戏开始了吗? n );gotoxy(4,6);Printf(按S键开始游戏,否则按任何其他键退出。 n );char c;c=getchar();if (c!=S)出口(0);系统(CLS);系统(“颜色24”);/设置背景颜色积分=0;/检查文件是否可以成功打开FILE *fp=fopen(C:els.txt , r );如果(fp=空)fp=fopen(C:els.txt , w );fprintf (fp,“%d”,分数);f clos

温馨提示

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

评论

0/150

提交评论