欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    俄罗斯方块实验报告.docx

    • 资源ID:1203772       资源大小:215.19KB        全文页数:50页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    俄罗斯方块实验报告.docx

    程序设计实践报告(2012/2013学年第2学期)题目:俄罗斯方块嬉戏设计专业学生姓名班级学号指导教师指导单位软件工程系日.期2013.03.27成果辨定叁考标准I程序设计实践环节评分为五级制,即,优秀、良好、中等、与格、不与格.依据程序设计实践过程中学生以下表现评定:学习看法是否端正、试验课前打算是否充分、是否实现课题要求的功能、算法设计是否合理、程序设计语言运用是否娴熟、用户界面设计是否科学、程序设计实践报告完成状况(包括:内容是否详实、文字表达是否流畅、格式是否符合规范、程序注狎是否详细)、答辩表现、考勤等.筒短评语老师签名,2013年3月27日俄罗斯方块嬉戏设计一、课题内容和要求本程序的主要任务就是编写简洁的俄罗斯方块嬉戏,要求设计比较美观和健全的嬉戏界面,可以实现方块预览、方块的限制、显示更新、分数更新以与帮助等基本功能,削减程序木身的错误,增加嬉戏的可操作性。程序的设计将结合些有关C语言图形界面设计的内容,该部分是之前没有接触过的,要求利用这次机会,比较简约地J'解相关内容与其简洁应用。本程序的实现是选用WindowsXP/7操作系统以与MicrosoftVisua1.Studio2008C+为编译器,用C语言完成程序设计的实践。运用Win32限制台应用程序,最终在DoS界面卜形成程序的主界面。二、概要设计struct/此结构体数表是打印各个方块的依据/是该程序设计的灵魂intvaryx4;intvary_y4:vary=U0,2.4,6),(0,0,0,0,(0,0,0.0,0,-1.t-2,-3),0,2,2,0),0,0,-1.,-1.,0,-2,-2,-4,0t0,-,-,U0,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,-1),0,2,2,2),O,O,-1.,-2tO,2,4,4,O,O,O,-1.,O,-2,-2,-2fO,0,-1.,-2,O,O,2,4),0,-1,-1,-1),(0,O,0,-2)f(O,-1,-2,-2,0,2,4,2),0,O,0,-1.),0,O,2,OJO,-1.,-1.,-2,(0,-2,O,2),0,-1,-1,-1),0,O,-2,0,(O,-1,-1,-2),本程序中关于方块的颜色、运动的速度都采纳的数组常於的形式,数组的编号分别对应方块形态的编号,这样就使得“方块形态一一方块颜色一一运动速度”一一对应起来,更直观和便利地实现动态管理。constintco1.=1.1.,15,12,12,10,10,9);限制方块的颜色constintspeed=0,12,9,6,3,1);限制方块的卜落速度constintnunber=(0,2,3,5,7,11,15):/对应方块的类型编号本程序的主体部分是由多个函数的循环多层调用来实现的,主要由以下的九个函数构成: voidPrintNext(intkind)该函数限制”下一个图形预览”中的方块样式,是整个程序的“引导者”、“开拓者二将引导程序的动态实现,将确定者下面几个函数的调用 voidStraightFa1.1(intdepth)该函数限制方块的着陆,是在整个程序中发挥着至关重要的作用,是整个动态过程的“纽带”将详细分功能的实现连串起来。VoidChoiceDirection(int*rev-count)该函数实现键盘对小方块的限制,在小方块着陆的过程中要时刻“监视”,因此,在函数中,每当些变量发生变更时.,即要调用该函数voidRevo1.ve(int*prev_count)该函数限制方块的旋转。该函数必需依附于,即每次有键盘的按动时,都要检验是否按r“t”假如按r,马上执行该函数,实行方块的翻转VOid1.eve1.MoveO该函数限制方块的移动方向。该函数类似于第四个函数,也是依附于voidGetDepth(int*pdepth)该函数可以得到小方块已累积的高度,从而推断小方块是否已经落下。该函数是个在多处都须要调用的函数VOidCheckBoundary0该函数可以限制、防止方块越过边界。一旦可能越过边界,则之前的方向限制无效,在方块左右移动、变更形态时都须要调用该函数VoidCheckFu1.1(int*pscore)检验是否有一行完全被覆盖,若有一行全部被排满的,即刻整体下移。在函数的最终,马上调用该函数voidGameOverO即当depth为。时,嬉戏结束,显示动态结束画面。在函数的最起先,马上调用该函数程序流程图大致如下:说明:该程序的流程图略显困难,但其实质,照旧是依次、选择、循环的运用,唯一困难的就是循环的主体不再是简洁的程序语句而是比较困难的函数,这样就会使得程序的结构比较冗杂,但假如把流程图画出来,就会清楚地看到问题照旧是很简洁。四、关健源码for(i=0;i<4;i+)(gotoxy(x+varypkind.vary_xi,y+varypkind.vary_yi);puts(''");该循环是用来依据上述数表打印各种不同的小方块,是木程序中很基本的语句块voidGameOverO画效果(co1.or(391);for(inti=31;i>=0:i")的打印for(intj=0;j<17;j+)(gotoxy(36-j*2,3+i);PUIS("”);S1.cep(5);该函数是用来实现嬉戏结束后的动用两层循环来实现主界面方块/延时函数的调用,使得最终的程序界面更有动感)co1.or(back);for(intj=0:j<31;j+)for(inti=0;i<17;i+)(boardij.having=0;gotoxy(4+2*i,j+3);PUtS("");S1.eep(5):)1voidRevo1.ve(int*prev_COUnt)限制方块的旋转,该函数是整个程序中最难的一部分代码(inti;before,x=current.x;before.current,y;(*prev_count)+:(*pevcount)Vconnectionprikind,sum;current,x=current.x+connectionpri_kind.connection_x*prev_count:current,y=current.y+connectionfprikind1.connectiony*prevcount;CheckBoundaryO:调用检验边界函数,防止方块在旋转过程中越出程序界面for(i=0;i<4;i+)int11=(currenI.x-4+varynumberpri_kind+*prev-count.vary_xi)2;intn=current.y+varynumberpri_kind+*prevcontJ.vary_yi-3;if(boardmn.having)m>16m<0n>31)(current,x=current.-connectionpri-kind.connection_x*prev_count;current,y=current.y-connection1.pri_kind.connection_y*prev_count;revo1.ve=0:(*prevcount);before,x=current.x;before,y=current.y;return:)co1.or(back);用背兔色把旋转前的方块覆盖for(i=0;i<4;i+)if(before,y+varykind.vary-yi>2)gotoxy(before,x+vary1.kindJ.vary_xi,before,y+varykind.vary_yi);puts(”);)kind-numberpri_kind+*prev_count:co1.or(co1.pri_kind):/打印旋转后的新的方块for(i=0:i<4;i+)(if(current.y+varykind.vary-yi>2)(gotoxy(current,x+varykind.vary_xi,current,y+varykind.vary_yi):PUtSe'"):)S1.eep(speedrank);依据等级来确定旋转、卜落的速度before,x=current.x;before.y=crrent.y;intmain()主函数是将一切子函数连串在一起的工具(srand(unsigned1.ong)time(0):gotoxy(5,5);Printfr一切打算就绪,嬉戏是否起先?n");gotoxy(4,6);Printf("起先嬉戏请按S键,否则按随意其他键退出。n"):charc;c=getchar();if(c!='S')exit(0);system(*,C1.Sa,):/检验systcm(*co1.or24*);设置背景颜色intSeorC=0;文件是否能够胜利打开FI1.E*fp=fopen("Ue1.s.txt","r");ifCfp=NU1.D(fp=fopen(*Ce1.s.txt*,*w*);fprintf(fp,飞d”,score);fc1.ose(fp):)PrintGarphyO;框架以与其中的文字kind=rand()%7;块的形态intdepth;whi1e(1)巾熨若嬉戏的过程(intpkind=rand()%7;PrintNex1.(pkind);current.x=20;始出现的位置current.y=2;Ge1.Dep1.h(&depth);if(depth=O)(GameOverO;为O时,嬉戏结束score=0;rank=1.:/打印程序的边界和基本随机函数来随机确定方是一个无限循环,不断地方块初当剩余的高度pri_kind=kind;if(kind=6)kind=15,current.-=2;e1.seif(kind=5)e1.seif(kind=4)e1.seif(kind=3)e1.seif(kind=2)e1.seif(kind=1.)kind=1.1.:kind

    注意事项

    本文(俄罗斯方块实验报告.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开