C_课程设计-俄罗斯方块.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C#程序设计实训报告 题目:5. 俄罗斯方块 院 系 信息工程系_______ 专 业_____计算机科学与技术_ 年级班别_____ ____ ___ 学 号 学生姓名_____ ___________ 指导教师_____ ___________ 成 绩 2011 年 12 月 系统设计要求 需求分析 本系统为一个用C#实现的为我们所熟悉的简单的俄罗斯方块游戏,该系统的具体功能如下: 能简便的开始游戏,游戏中的方块的功能与日常我们所熟悉的游戏的功能一致,各种块的设置也一致,包括块的旋转,加速下降,平移,满行消去,到顶游戏结束功能; 能够自定义游戏中功能键的具体按键,设置游戏的级别,即方块下降的速度等,并在设置后立即生效,在游戏中立刻体现,在下次程序运行时读取上次设置的游戏环境; 显示下一方块提示信息,以及游戏数据的统计,如速度,按键速度,分数行者等等; 游戏有级别设置,级别越高,方块下降的速度越快,当到达一定分数后进入下一级别; 界面要求 要求界面简洁美观,简单易用。 设计环境 本程序选择Visual Studio 2008作为实验环境。 设计思路 用面向对象的方法分析系统 对于俄罗斯方块来说,我们可以定义一个类,专门来描述俄罗斯方块,在这个类中,包含与之相关的方法、属性和字段,通过封装,实现其业务逻辑。其中,每一个俄罗斯方块都有相同的特征,由4个小正方形构成,有旋转,移动,下落的动作,行被填满除去构成行的小正方体块。基中块的形状类型有7种:田、一、L、倒L、Z、倒Z、上。 在主窗口中,通过调用俄罗斯方块类来实现程序的表示层,在该窗口中通过两个Panel控件来实现方块叠放窗口和下一方块信息窗口;调用设置窗口,保存设计窗口类传回的信息,并设置到游戏中去,保存在配置文件中; 在设置窗口中,以良好的界面提供用户自定义快捷键的接口,保存相应设置参数,以提供给调用窗口。 概要设计 根据设计思路,可以为系统设计三个类,实现俄罗斯方块其本块的类RussiaBlock继承Object类,主窗体类MainForm类,设置窗体类SettingForm类。 RussiaBlock类 字段 private int shapeNO;//形状号 private Control con;//绘图控件 private Point[] pos;//当前位置 private Point[] lastPos;//最后位置 private int leftBorder;//左边界 private int bottomBorder;//下边界 private int unitPix;//每块象素数 /// summary /// 当前块总个数 /// /summary private int blockNum = 0;//当前块总个数 private int rowDelNum = 0;//已构成满行被消去的行数 private bool[,] aroundExist;//周边的位置是否有块 private Color[,] aroundColor;//周边的着色 private Color color;//当前块颜色 属性 public int RowDelNum//当前块总个数 public int BlockNum//当前块总个数 私有方法 private void SetLastPos()//设置方块的最后位置 private void SetPos(int shapeNO, Point firstPos)//设置方块的当前位置,shapeNO方块号,firstPos初始位置 private bool CanMove(int direction)//块是否还可继续移动包括下和左右 private bool CanRotate(Point[] pos)//判断当前块是否是可以进行翻转,位置确定则不能,还没确定则可以 private void DelRows()//一行中所有格填满,删除该行. private void DrawOne(int x, int y, Color color, Graphics gra)//在指定的位

文档评论(0)

li455504605 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档