首页 俄罗斯方块游戏设计报告

俄罗斯方块游戏设计报告

举报
开通vip

俄罗斯方块游戏设计报告..PAGE优选.....学习.资料.C语言课程设计报告设计题目:俄罗斯方块游戏设计院系:班  级:学号:姓名:指导教师:设计地点:开课时间:学生成绩评语:指导教师〔签名〕年月日目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc267569177"1.设计目的和任务PAGEREF_Toc267569177\h-1-HYPERLINK\l"_Toc267569178"1.1目的:PAGEREF_Toc267569178\h-1-HYPERLINK\l"_Toc26...

俄罗斯方块游戏设计报告
..PAGE优选.....学习.资料.C语言课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 报告设计题目:俄罗斯方块游戏设计院系:班  级:学号:姓名:指导教师:设计地点:开课时间:学生成绩评语:指导教师〔签名〕年月日目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc267569177"1.设计目的和任务PAGEREF_Toc267569177\h-1-HYPERLINK\l"_Toc267569178"1.1目的:PAGEREF_Toc267569178\h-1-HYPERLINK\l"_Toc267569179"1.2任务:PAGEREF_Toc267569179\h-1-HYPERLINK\l"_Toc267569180"2.开发环境PAGEREF_Toc267569180\h-1-HYPERLINK\l"_Toc267569181"2.1硬件环境:PAGEREF_Toc267569181\h-1-HYPERLINK\l"_Toc267569182"2.2软件环境:PAGEREF_Toc267569182\h-1-HYPERLINK\l"_Toc267569183"3.设计题目PAGEREF_Toc267569183\h-2-HYPERLINK\l"_Toc267569184"3.1题目名称:PAGEREF_Toc267569184\h-2-HYPERLINK\l"_Toc267569185"3.2题目详细描述:PAGEREF_Toc267569185\h-2-HYPERLINK\l"_Toc267569186"3.3功能 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 :PAGEREF_Toc267569186\h-2-HYPERLINK\l"_Toc267569187"4.相关技术以及知识点PAGEREF_Toc267569187\h-3-HYPERLINK\l"_Toc267569188"4.1编写Block类:PAGEREF_Toc267569188\h-3-HYPERLINK\l"_Toc267569189"4.2PathGradientBrush类:PAGEREF_Toc267569189\h-3-HYPERLINK\l"_Toc267569190"4.3Random类:PAGEREF_Toc267569190\h-3-HYPERLINK\l"_Toc267569191"4.4GDI图形处理:PAGEREF_Toc267569191\h-3-HYPERLINK\l"_Toc267569192"5.设计与实现PAGEREF_Toc267569192\h-4-HYPERLINK\l"_Toc267569193"5.1设计 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图PAGEREF_Toc267569193\h-4-HYPERLINK\l"_Toc267569194"5.2游戏主体界面PAGEREF_Toc267569194\h-4-HYPERLINK\l"_Toc267569195"5.3游戏图形界面PAGEREF_Toc267569195\h-11-HYPERLINK\l"_Toc267569196"5.4图形的移动与消行PAGEREF_Toc267569196\h-13-HYPERLINK\l"_Toc267569197"5.5得分的实现PAGEREF_Toc267569197\h-15-HYPERLINK\l"_Toc267569198"6.总结PAGEREF_Toc267569198\h-16-HYPERLINK\l"_Toc267569199"7.参考资料PAGEREF_Toc267569199\h-16-.--.word.zl.....学习.资料.1.设计目的和任务1.1目的:在现今电子信息高速开展的时代,电子游戏已深入人们的日常生活,成为老少皆宜的娱乐方式。俄罗斯方块,是一款风行全球的游戏,最初是由联人制作的,规那么简单,容易上手,且游戏过程变化无穷,可以让玩家充分感受游戏中的乐趣。在游戏设计方面,俄罗斯方块是游戏编程的入门工程,因为它可以检验编辑人员对开发语言、环境和根本数据构造知识熟练程度。1.2任务:使用C*语言编写一个俄罗斯方块游戏系统,要求程序运行后有一个图形用户界面,并具备下面几个功能:(1)实现各种方块的生产,包括形状和颜色等信息;(2)实现各个方块的上下左右移动和旋转的功能;(3)实现消行的功能;(4)实现开场,暂停,完毕等功能。2.开发环境2.1硬件环境:效劳器CPU:PIII500以上,存:256M客户机CPU:P200MMX以上,存:32M以上2.2软件环境:VisualStudio2005.net2.0以上3.设计题目3.1题目名称:俄罗斯方块游戏系统3.2题目详细描述:使用C*语言编写一个俄罗斯方块游戏系统,要求程序运行后有一个图形用户界面,实现各种方块的生产,包括形状和颜色等信息,完成左右下旋转的功能,在消行的同时分数加1,在点击暂停或者按下空格的时候暂停或开场游戏,最后完毕游戏。3.3功能要求:功能(1)实现各种方块的生产,包括形状和颜色等信息;(2)实现各个方块的上下左右移动和旋转的功能;(3)实现消行的功能;(4)实现时间和得分的统计功能;(5)实现开场,暂停,完毕等功能;要求(1)编写程序要严格按照C*编程规进展代码编写。(2)必须按照个体软件的过程,编写有关的文档。(3)按照教师的要求,每个人必须独立完成。(4)按照实训的时间安排进展实训,实训完毕后提交有关的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 格与文档4.相关技术以及知识点4.1编写Block类:在游戏工程规说明书所创立的类图中定义了Block类,现在可以把它编写为最终的类接口形式,包括属性的数据类型以及方法所使用参数的数据类型。每个确定的方块都与正方形的某种特定排列方式相对应,因此可以考虑Block类的3个新成员:BlockType属性、方块类型的枚举集合、构造函数(用以在期望的位置、使用期望的色彩创立每个正方形)。为了给玩家一个清楚的视觉提示,每种类型的方块颜色应该是固定的,因此创立一个数组来保存每种类型方块的前风光和背风光是一种较好的想法。4.2PathGradientBrush类:封装Brush对象,它通过渐变填充GraphicsPath对象的部。彩色渐变是从路径的中点到路径的外边界边缘的平滑的彩色渐变。混合因子、位置和样式影响渐变起始和完毕的位置,并且影响渐变变化的速度。路径渐变画笔不遵循用于执行绘制操作的Graphics对象的SmoothingMode属性。无论是否用平滑模式,用PathGradientBrush对象填充的区域都以同样的方式呈现。4.3Random类:伪随机数是以一样的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,因为它们是用一种确定的 数学 数学高考答题卡模板高考数学答题卡模板三年级数学混合运算测试卷数学作业设计案例新人教版八年级上数学教学计划 算法选择的,但是从实用的角度而言,其随机程度已足够了。Random类的当前实现基于DonaldE.Knuth的减法随机数生成器算法。随机数的生成是从种子值开场。如果反复使用同一个种子,就会生成一样的数字系列。产生不同序列的一种方法是使种子值与时间相关,从而对于Random的每个新实例,都会产生不同的系列。默认情况下,Random类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的计时周期数采用Int32值。但是,因为时钟的分辨率有限,所以,如果使用无参数构造函数连续创立不同的Random对象,就会创立生成一样随机数序列的随机数生成器。通过创立单个而不是多个Random对象可以防止此问题。假设要提高性能,请创立一个随时间推移能生成多个随机数的Random对象,而不要反复新建会生成同一个随机数的Random对象。4.4GDI图形处理:GDI+提供了一个抽象层,隐藏了不同视频卡之间的区别,这样就可以调用WindowsAPI函数完成指定的任务了,GDI还在部指出在运行特定的代码时,如果让客户机的视频卡完成要绘制的图形。GDI还可以完成其他任务。大多数计算机都有多个显示设备---监视器、打印机。GDI成功的使应用程序所使用的打印机看起来与屏幕一样。如果要打印某些东西,而不是显示他们,只需告诉系统输出设备是打印机,再用一样的方式调用一样的WindowsAPI函数可以。5.设计与实现5.1设计流程图5.2游戏主体界面主界面关键局部代码:namespace俄罗斯方块{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}staticpublicint[,]mainField;staticpublicintrow=20;//数组mainField[,]的行staticpublicintline=15;//数组mainField[,]的列privateBlockcurrentBlock;//主界面中活动的方块privateBlocknextBlock;//副界面中的方块privateintlevel=1;privateintscore=0;//菜单栏中NewGameprivatevoidmenuItemNew_Click(objectsender,EventArgse){NewGame();}//菜单栏中Start,在暂停之后使用,继续进展游戏privatevoidmenuItemStart_Click(objectsender,EventArgse){timerInterval.Start();menuItemStart.Enabled=false;menuItemPause.Enabled=true;btnPause.Text="Pause";}//菜单栏中Pause,用于暂停游戏privatevoidmenuItemPause_Click(objectsender,EventArgse){timerInterval.Stop();menuItemStart.Enabled=true;menuItemPause.Enabled=false;btnPause.Text="Start";}//菜单栏中Exit,用于推出游戏privatevoidmenuItemExit_Click(objectsender,EventArgse){this.Close();Application.Exit();}//菜单栏中beginnermodelprivatevoidmenuItemBeginer_Click(objectsender,EventArgse){NewGame();level=1;timerInterval.Interval=500/level;labeLevelVisual.Text=Convert.ToString(level);}//菜单栏中normalmodelprivatevoidmenuItemNormal_Click(objectsender,EventArgse){NewGame();level=2;timerInterval.Interval=500/level;labeLevelVisual.Text=Convert.ToString(level);}//菜单栏中insanemodelprivatevoidmenuItemInsane_Click(objectsender,EventArgse){NewGame();level=3;timerInterval.Interval=500/level;labeLevelVisual.Text=Convert.ToString(level);}privatevoidmenuItemOnMusic_Click(objectsender,EventArgse){}privatevoidmenuItemOffMusic_Click(objectsender,EventArgse){}//菜单栏中的config选项privatevoidmenuItemConfig_Click(objectsender,EventArgse){if(!GameIsOver()){timerInterval.Stop();MessageBox.Show("Left:Arrow(←)\n\nRight:Arrow((→)\n\nDown:Arrow(↓)\n\nRotate:Arrow(↑)");timerInterval.Start();}elseMessageBox.Show("Left:Arrow(←)\n\nRight:Arrow((→)\n\nDown:Arrow(↓)\n\nRotate:Arrow(↑)");}//菜单栏中的version选项privatevoidpicBoxMainField_Click(objectsender,EventArgse){//picBoxMainField.Focus();}//focusprivatevoidpicBoxMainField_Paint(objectsender,PaintEventArgse){//假设没有此句,键盘焦点不能移到picBoxMainField中picBoxMainField.Focus();}privatevoidlabeLevelVisual_Click(objectsender,EventArgse){}privatevoidlabScoreVisual_Click(objectsender,EventArgse){}//主界面中的Pause按钮privatevoidbtnPause_Click(objectsender,EventArgse){//按钮btnPause点击Pause后显示Startif(btnPause.Text=="Pause"){timerInterval.Stop();btnPause.Text="Start";menuItemPause.Enabled=false;menuItemStart.Enabled=true;}//按钮btnPause点击Start后显示Pauseelseif(btnPause.Text=="Start"){timerInterval.Start();btnPause.Text="Pause";menuItemPause.Enabled=true;menuItemStart.Enabled=false;}}//主界面中的NewGame按钮privatevoidbtnNewGame_Click(objectsender,EventArgse){NewGame();}//主界面中的Exit按钮privatevoidbtnExit_Click(objectsender,EventArgse){this.Close();Application.Exit();}//NullprivatevoidForm1_Load(objectsender,EventArgse){}//NullprivatevoidForm1_KeyDown(objectsender,KeyEventArgse){}//显示newGame,这里是必须的privatevoidForm1_Shown(objectsender,EventArgse){NewGame();}//新游戏privatevoidNewGame(){mainField=newint[row,line];//申请一个新的数组,存储整个界面方块信息for(inti=0;i=19)canDown=false;if(bottom.Y<19){for(inti=3;i>=0;i--){for(intj=3;j>=0;j--){if(Shape[i,j].Filled==true){if(mainField[Shape[i,j].Y+1,Shape[i,j].X]==1)canDown=false;}}}}returncanDown;}消行方面代码例如:privatevoidClearLine(){intlines=0;//同时消失的行数intbricks;//同一行中的砖块brick数for(inti=row-1;i>=0;i--){bricks=0;for(intj=line-1;j>=0;j--){if(mainField[i,j]==1)bricks++;}if(bricks==line)//如果同一行中的砖块brick个数到达了行数line,即该行满行{lines++;for(intj=line-1;j>=0;j--){mainField[i,j]=0;//将该行全部赋值为0,即消除该行}for(intm=i;m>0;m--){for(intj=line-1;j>=0;j--){mainField[m,j]=mainField[m-1,j];//将该行以上各行,均向下一行移动一行,这里用赋值完成}}i++;//检查下一行}}5.5得分的实现if(lines==1)//如果同时消除1行,得1分score+=1;if(lines==2)//如果同时消除2行,得3分score+=3;if(lines==3)//如果同时消除3行,得5分score+=5;if(lines==4)//如果同时消除4行,得10分score+=10;labScoreVisual.Text=score.ToString();//主界面label显示分数scoreif(score>20&&level==1)//score大于20分,进去第二个level{level++;timerInterval.Interval=500/level;labeLevelVisual.Text=level.ToString();}if(score>35&&level==2)//score大于35分,进入第三个level{level++;timerInterval.Interval=500/level;labeLevelVisual.Text=level.ToString();}}6.总结这次C*实训是我人生中最大的收获,这次实训,让我受益匪浅。经过一周多的实训,我学到了很多知识,这为我接下来的学习做好铺垫。在这一周里我通过问教师问同学,逐步完成了俄罗斯方块的设计。现在我在一步一步的学习,制作出了俄罗斯方块,心中有一种自豪感。这是我这一周来得到的成果。俄罗斯方块的制作的完成,让我学到了很多。在这个实训中我在编写代码的时候常常出错,经过同学的指教,才有了现在程序的正常运行。在编代码的过程中我遇到了很多小麻烦,有些小问题弄得我焦皮烂愕。实训中,有同学帮我把我的代码一遍遍的看了一下,帮我指出好多错误。在这之后我也仔细认真的查过一边,并把一些代码记住,增加了自己的知识。现在才感觉自己原来也是能做好的。在实训中我遇到很多问题:比方代码忘记了或者有些代码不认识。我都会去翻书,或者去问同学。在有些属性我不会用现在通过自己的摸索和同学的指教,我了解了很多、增加了我的知识。在编程中经常会遇到崩溃的问题,这些我都重新弄了一下。增加了对代码的熟悉度这次实训让我受益匪浅,我学到了很多知识。这次实训让我学会了在以后的编程中要更加仔细更加认真7.参考资料"VisualC*2005程序设计教程"机械工业"VisualC*时尚编程百例"机械工业百度百科,baike.baidu.豆丁文档,docin.教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。
本文档为【俄罗斯方块游戏设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
pl64xlyx
长期工作中积累了很多经验
格式:doc
大小:123KB
软件:Word
页数:14
分类:教育学
上传时间:2022-03-21
浏览量:4