第10讲义面向对象编程实战(4学时33-36).docVIP

第10讲义面向对象编程实战(4学时33-36).doc

  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文档。上传文档
查看更多
第10讲义面向对象编程实战(4学时33-36)

第十讲:Java 面向对象的实战OO 需求分析阶段 1,. 功能性需求 Tetris是一款小型休闲游戏项目,为了丰富课余学生的生活,为了消除工作一整天后的疲劳,使得我们的小游戏能自主地在自己的手机里运行,这种制作游戏DIY的超酷体验是任何玩游戏的人所不能想象的。 Tetris的功能性需求包括以下内容 (1)具有登录系统的账户管理功能 (2)具有升级功能和自动调节难度功能 (4)具有单机游戏功能 (5)具有联网多玩家进行游戏竞赛功能 (6)具有DIY定制功能,包括对画布的大小形状设置,对方块库的设计、添加、删除和修改功能。 其中,tetris本身所具有的最为核心的各项基本功能是 提示下一个方块功能 下落加速功能 消层得分功能 左右移动功能 自动下落功能 2. 非功能性需求 非功能性需求主要包括用户界面的美观需求、游戏的易用性需求、用户文档的一致性需求、系统可靠性需求、系统的响应时间需求、低内存低耗需求、易维护性易扩展性需求。能移植到手机java平台运行。 3. 设计约束条件 操作系统的跨平台需求 C/S架构 网络需求 数据库需求 需求分析系统建模 1. 使用用例驱动来创建系统用例模型,从而获得Tetris系统需求,在rational rose2003创建系统用例图如下: 用例规约: 。。。。。。 2. 在获得系统的基本需求之后,通过分析系统中涉及到的各个对象以及程序中需要用到的对象分析其属性以及所持有的操作,采用rational rose2003创建系统类对象图如下: 系统中有两个参与者,分别是user和admin,用户和管理员, 二、系统分析阶段: 在该系统中,我们需要设计对应的类和对象,在前面的基础上,我们已经初步识别出系统的功能,形成一个个用例,在这里我们需要对需求进行更深层研究,考虑如何在系统中实现。 在俄罗斯方块游戏进行的时候,我们考虑到三层架构:界面层,控制层和实体层。在界面层,主要是一个主游戏界面,我们称之为JFame类,在该类中,不仅包含游戏的显示区域,还包含游戏的控制区域和提示区域,每一个区域都可以看成是一个类,用JPanel表示;界面层的类称之为边界类,主要负责接收用户的信息,包括点击按钮事件、键盘事件。在控制层,也即我们逻辑层,主要负责将事件所携带的信息传送给实体类,主要有键盘控制类和鼠标点击控制类(在java中,直接采用监听适配器来完成控制层的职责)。在实体层主要是各个实体类,需要对系统中涉及到的各个概念实体的属性和行为进行封装,类模型通过行为来定义各个实体类的职责,但不具体描述如何实现。在该游戏中,实体类主要包括方格类(Box)、方块类(Block)、画布类(CanvasPanel)、控制面板类(ControlPanel)、游戏主类(GameFrame)(该类负责整个程序的入口,并实现线程接口,定义timer,使得游戏开始后自动运行) 因此,结合用例图,针对上述陈述,我们识别出潜在的类。 类的设计 详细 Block功能模块: 设计其主要的方块库: { 0x0f00, 0x4444, 0x0f00, 0x4444 }, // 长条型的四种状态 { 0x04e0, 0x0464, 0x00e4, 0x04c4 }, // T型的四种状态 { 0x4620, 0x6c00, 0x4620, 0x6c00 }, // 反Z型的四种状态 { 0x2640, 0xc600, 0x2640, 0xc600 }, // Z型的四种状态 { 0x6220, 0x1700, 0x2230, 0x0740 }, // 7型的四种状态 { 0x6440, 0x0e20, 0x44c0, 0x8e00 }, // 反7型的四种状态 { 0x0660, 0x0660, 0x0660, 0x0660 }, // 方块的四种状态 { 0xae00, 0xc8c0, 0xea00, 0xc4c0 }, // 凹凸曼 { 0x4e40, 0x4e40, 0x4e40, 0x4e40 }, // 十字架 { 0xc460, 0x2e80, 0xc460, 0x2e80 } // 大之字 run( ) 自动下落功能 turnTo(newStyle) 变换到指定的style 判断isTurnable,若 则返回false 先擦出印章, 将style赋予给成员变量style 显示新印章 重画 返回true turnNext() 变换到指定的style 给定int style,判断其是STYLE中第[i][j]列元素, 将[i][j+1]赋值给新类型, 调用turnTo(新类型) R

文档评论(0)

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

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

1亿VIP精品文档

相关文档