1、 C#程序设计实训报告程序设计实训报告 题目题目:俄罗斯方块:俄罗斯方块 专 业_计算机科学与技术 _ 年级班别_ 计算机 09-2 班_ 学 号 学生姓名_ _ 指导教师_ 成 绩 2012 年 1 月 2 目目 录录 一一 系统设计要求系统设计要求 . 3 1.1 课题分析错误错误!未定义书签。未定义书签。 1.2 设计环境 3 1.3 设计思路 3 二二 课题总体框架设计课题总体框架设计 . 3 2.1 程序流程图. 4 2.2 类的结构图. 5 三三 课题实现课题实现 6 3.1 程序主界面. 6 3.2 开始游戏界面 6 3.3 游戏结束界面 7 3.4 暂停游戏界面 7 3.5使用
2、说明界面.8 3.6 关键程序代码 8 四四 总结总结 21 4.1 设计总结. 21 4.2 设计体会 22 3 一、一、系统系统设计要求设计要求 1.1 课题分析 本游戏系统是利用 C#实现的, 是制作为我们所熟悉的非常简单的俄 罗斯方块游戏,该系统能实现的具体功能如下: 1) 能简便的开始游戏,游戏中的方块的功能与日常我们所熟悉的游戏的功 能一致,各种块的设置也一致,包括方块的旋转,加速下降,左右移动,满行消去, 满行消去自动加分,以及到顶游戏结束等功能; 2) 能够通过对话框窗体说明各个功能的使用说明,以及一些其他功能。 3) 界面简洁美观,简单易用。跟其他一般的游戏相差不大。 1.2
3、1.2 设计环境设计环境 本程序选择 Visual Studio 2010 作为实验环境。 1.3 1.3 设计思路设计思路 用面向对象的方法分析系统 对于俄罗斯方块的程序制作,我们可以定义一个或者几个类,专门来描述俄 罗斯方块,在这个类中,包含与之相关的方法、属性和字段,通过封装,实现其 业务逻辑。其中,每一个俄罗斯方块都有相同的特征,由 4 个小正方形构成,有 旋转,左右移动,下落的动作,整行被填满除去并计算分数而构成行的小正方体 块。基中块的形状类型有 7 种:田、一、L、倒 L、Z、倒 Z、上。 在窗口中通过调用主窗体 Form1 当中的菜单栏来设置游戏的开始、暂停、结 束、重新开始以
4、及推出程序。还可以通过其菜单中游戏说明选项来查看游戏各个 键的使用说明,还可调用帮助菜单来查看版权说明。 二、二、课题总体框架设计课题总体框架设计 4 2.1、 程序流程图程序流程图 开始 窗口初始化 读取游戏 开始游戏 开启游戏时钟 随机形成方块 判断是否可 移 旋转 左移 右移 加速下降 暂停 结束 绘制方块 是否越顶 是否满行 消行 结束 加分 5 2.22.2、 类的结构图类的结构图 6 三、三、课题实现课题实现 3.1 程序主界面程序主界面 3.3.2 2 开始游戏开始游戏界面界面 7 3.33.3 游戏结束游戏结束 3.3.4 4 暂停游戏暂停游戏 3.53.5 使用说明界面使用说
5、明界面和版权界面和版权界面 8 3.3.6 6 关键程序代码关键程序代码 1 1、Form1Form1 类类 1) 构造函数,设定当前运行的方块,下一个即将出现的方块,方块产生的位置, 玩家积分,游戏开关等。 public partial class Form1 : Form private Block currentBlock; /当前在运行的方块 private Block nextBlock; /下一个即将出现的方块 private Point startLocation = new Point(bianjie.SingleSquareSize * 8, 0); /方块产生的位置 pri
6、vate int score = 0; /玩家积分 private bool stillRuning = false; /游戏运行开关 2) 键盘操作:用来选择方块的移动方向,是向右移动,向左移动,向下加速, 旋转,还是暂停。 /*键盘操作*/ private void Form1_KeyDown(object sender, KeyEventArgs e) switch (e.KeyCode) case Keys.Right: currentBlock.right() ; break;/向右移动 case Keys.Left: currentBlock.left() ; break; /向左移动 case Keys.Up: currentBlock.Rotate(); break; /旋转 case Keys.Down: while (currentBlock.down