欢迎来到天天文库
浏览记录
ID:25771091
大小:331.50 KB
页数:36页
时间:2018-11-22
《c课程设计--俄罗斯方块》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C#课程实训报告C#课程实训报告(2013--2014年度第1学期)专业软件工程学生姓名班级学号指导教师完成日期1C#课程实训报告目录目录21设计目的12设计内容13实现方法13.1程序概述13.2游戏的概要设计33.3游戏的详细设计及编码43.4开发环境334小结343C#课程实训报告C#课程实训报告1设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的C#语言课程基本知识,进一步掌握C#语言程序设计方法,提高分析问题、解决问题的综合应用能力。2设计内容俄罗斯方块游戏的编制。3实现
2、方法3.1程序概述3.1.1游戏的功能它的基本功能就是要求玩家先登录窗体输入用户名(ldq)和密码(afafa),如果正确则登录游戏,如果输错三次则退出游戏。登录游戏后玩家通过移动或旋转自己窗口内落下的方块,方块在一行堆满后就可以消掉;如果方块堆积至窗口顶端,则游戏结束。系统默认设置使用右边的窗口,用光标操作:左箭头左移一格,右箭头右移一格,上箭头旋转方块,下箭头方块丢下。用户还可以定义自己习惯的按键来操作游戏。3.1.2游戏的预览游戏运行的登录窗口如图3-1所示。33C#课程实训报告图3-1登录窗体游戏运行的主操作界面如图
3、3-2所示。图3-2主操作界面单击[设置]按钮,出现一个对话框,可以设置游戏规则。在操作设置界面中可以进行键盘设置,还可以进行环境设置,设置游戏的难度。操作界面如图3-3所示。33C#课程实训报告图3-3操作设置界面[开始级别](默认是一级),级别是1-10,级别越高方块下落速度越快。3.2游戏的概要设计3.2.1游戏实现方案屏幕上有一个X列Y层的区域,计算机自动产生多重不同形状的方块,并出现在区域的最顶端;然后每过一个固定时间向下落一层,玩家可以使用键盘控制方块向三个方向移动和顺(逆)时针旋转90°。不过前提是方块移动和旋
4、转后的位置是空的,并且碰触不到提前设置好的边界。当方块落到区域底部或者另一个方块之上是将停止移动。该方块降落后检查每行是否有满行的现象,如果有,这一行全部取消方块,将上一层的方块重新画到这一层。随后新的方块产生,当新方块无处放置时,游戏结束。3.3.2游戏逻辑设计首先是定义与游戏相关的数据的存储方法,分为两个主要的部分:一个是当前的方块,需要保存位置、当前的旋转状态;另一个是屏幕区域的状态,这可以用一个二维数组来表示。其次,分析得到按键的含义,做出响应,响应模块:“左”、“右”、“下”、“移动”和“旋转”33C#课程实训报告
5、几个模块,负责改变当前方块的状态的数据;画方块模块:位置移动后,把方块画到新的位置上;检查模块:在每次改变状态之前,对方块企图占用的区域进行检查。如果无处可放,则此次移动失败。如果方块到区域底端了,则应该固定在当前位置,这可以调用前面的画方块模块来实现,同时再再产生一个方块。这样还需要写一个产生方块的模块。每次当方块到底的时候,都需要检查一下是否有新的层排满了,如果有,则应该消层。这就又需要写两个模块,检车是否排满和消层。产生新方块时也需要检查其产生的位置,如果这个位置已被占用,则游戏结束,这需要调用前面的检查模块来实现。最
6、后检查系统时间,规定每过一个指定时间间隔就调用一次方块下落模块。3.3游戏的详细设计及编码3.3.1主界面设计编码主界面的作用就是显示本游戏所有的功能菜单项,提供游戏的而显示界面。在本界面中共设计了5种控件,通过这些控件,玩家可以方便的控制游戏,各个控件的名称、作用和类型如表3-1所示。表3-1主界面的控件设计控件类型控件名称作用menustrip退出ToolStripMenuItem退出打开命令ToolStripMenuItem操作控制打开音乐ToolStripMenuItem打开音乐帮助ToolStripMenuItem
7、帮助panelPanel1显示游戏中当前所有方块Panel2显示要出现的下一个方块LabelLabel1显示级别Label3显示块数Label5显示行数Label7显示手速BottonBotton1开始Botton2打开游戏设置界面Botton3暂停WindowsmediaplayeraxMediaPlayer1音乐播放器另外,在界面中还设置了1个TextBox控件。在界面操作中,把焦点一直防止在这个控件上,方便用户用键盘操作游戏方块。在游戏中需要保存用户自定义的一些设置,本游戏中把设置保存到setting.cob文件中,并
8、在游戏加载的时候调用。主界面Load事件的代码如例程3-1所示,游戏设置保存代码如例程3-2所示。例程3-1主界面Load代码,用到Initiate函数进行操作设置初始化。privatevoidForm1_Load(objectsender,EventArgse){33C#课程实训报告th
此文档下载收益归作者所有