程序设计类课专程周设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计类课专程周设计

专 周 报 告 课程名称 面向对象程序设计专周 专周题目 俄罗斯方块游戏 姓 名 班 级 学 号 指导教师 设计时间 目 录 一、题目和设计要求 1 二、设计与实现 2 1、分析问题 2 2、设计思路 2 4、功能实现 5 5、典型算法和技巧分析,调试体会 7 三、专周小结 9 四、参考文献 10 一、题目和设计要求 专周题目: 俄罗斯方块游戏 设计要求: 用单文档来制作一个俄罗斯方块游戏,玩家可以通过键盘操作或快捷键来玩游戏。我做为小组成员负责界面美化,添加音乐,和视图类这三部分。 题目要求如下: 1.有一个可视化的界面,玩家可以按游戏的选项(开始,暂停,退出等)来操作游戏。 2.玩家可以执行游戏方块的移动操作:一般为移动键盘左、右、下键来向左、右、下来移动方块;还可以执行方块变形的操作:可用上键来变形方块 3.当玩家将游戏方块排满一行(或几行)游戏自动消行,分数也将增加(如消一行加100) 难度也会以系统设置相应的增加(如分数为500是难度为1,再加500时难度就加1为2) 4.如果玩家将方格堆积触到了界面顶端,此时即游戏结束,游戏弹出提醒菜单。 二、设计与实现 1、分析问题 编写俄罗斯方块游戏,首要考虑的是界面的问题要有一个相对美观的界面,可以用Photoshop做,也可以直接用MFC做。 界面做好后,就要考虑七种方块的移动操作 、显示等等一系列的问题。首先,我们要把七种方块用二维数组的方式控制;其次,在游戏中将这七种方块随机的挑选出来显示在屏幕上,根据键盘事件进行移动、旋转;最后,判断到达底部的方块是简单叠加还是引发消除事件。 考虑方块的几种形状,变形时,要对图形变换的情况作出判断,判断其可以变几种形,以及怎样来实现变形。 如何控制方块的下落速度,如何实现左移、右移、下落,如何消行,如何记分,又如何加速等等都是需要考虑的问题。 对于如何决定下一个怎样的方块,可以采取随机数,用随机数来决定方块。 需要判断是否需要消行,如果消行,需判断消的行数,及所需加相应的分数。 随着分数的改变自动升级部分:可根据所得的分数进行自动升级,标准什么?采用怎样的升级方式?分数与等级之间怎样分配比例? 背景音乐部分:点击背景音乐菜单中的开始出现一个窗口,可进入电脑中选择自己喜欢的音乐,怎样让音乐暂停? 2、 设计思路 首先运行程序,出现游戏界面,在游戏菜单子菜单-开始,玩家可以鼠标点击,也可以按快捷键F2来开始游戏。 游戏开始,会随机的出现方块类型,方块以设定的速度下落。 玩家可以用键盘上的方向键,左、右、下键来向左、向右、向下移动方块,还可以用上键来变形。 d) 玩家如果把方块拼成满行,(满12列),方块将自动消行,并且在分数上相应的增加,难度上也对应增加。同时一相应的难度增加相应的速度。 e) 游戏有暂停功能(F3) 游戏进行时的图片: 4、功能实现 1,我的整个模块是一个Tetris方块类编写。 具体包括Tetris方块类中的 //游戏数组 int Russia[100][100]; // 当前图形 int Now[4][4]; //上一图形 int Will[4][4]; //变换后的图形 int After[4][4]; //当前图形的左上角位置 CPoint NowPosition; //当前可能出现的图形形状数, int Count; //游戏结束 bool end; //级别 int m_Speed; //分数 int m_Score; //行列数 int m_RowCount,m_ColCount; //方块 //显示分数等内容 void DrawScore(CDC*pDC); //消行 void LineDelete(); //方块移动 void Move(int direction); //方块变化,即方向键上键操作 bool Change(int a[][4],CPoint p,int b[][100]); //是否与原来方块接触,或与边界接触 bool Meet(int a[][4],int direction,CPoint p); //显示下一个方块 void DrawWill(); //显示界面 void DrawJiemian(CDC*pDC); //开始 void Start(); 以下即为我负责编写的函数以及相应的注释: void CT

文档评论(0)

sfd38 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档