- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构设计
课程设计报告
课程设计题目:俄罗斯方块小游戏
专 业 名 称: 软件工程
2017 年6月 30日
一、简介
1.1俄罗斯方块游戏简介
《俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。
由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。
1.2 俄罗斯方块游戏规则
1.游戏主画面在一个用于摆放方块的面板上
2.(1)一组由4个小型正方形组成的规则图形(即方块)共有7种形状,分别为一字形、田字形、7字形、反7形、Z形、反Z形、T形。
(2)一字形:一次最多消除四层
田字形:消除一至二层
7字形:最多消除三层,或消除二层
反7形:最多消除三层,或消除二层
Z形:最多二层,容易造成孔洞
反Z形:最多二层,容易造成孔洞
T形:最多二层
3. 方块从区域上方开始下落,玩者可以按指定按钮左右移动方块、逆时针旋转方块,以及让方块加速落下。
4. 方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的方块出现在区域上方开始落下。
5. 当区域中某一行横向格子全部由方块填满,则该列会消失,玩家得分。
6. 当固定的方块累积堆到一定层数(设计游戏时设置)时,游戏结束。
7. 游戏会提示下一个要落下的方块形状。
二、需求分析与游戏设计
2.2 需求分析
2.2.1 游戏界面需求?
良好的用户界面设计。本游戏主要有三个界面,一是主游戏区的面板,显示变化和下落的方块;二是用于放置按钮以及显现游戏信息的面板,三是双人对战时用以显示对方游戏信息的面板。?
2.2.2 方块控制需求?
方块下落时,可通过特定按钮对该方块进行翻转、加速,以及向左、向右移动等操作。?
2.2.3 图形显示需求?
随机给出不同的形状(一字形、田字形、7字形、反7形、Z形、反Z形、T形),下落填充给定的区域,填满一行则消掉记分,方块累积到一定层数无法再消去行时游戏结束。
2.3 游戏设计
2.3.1 游戏流程图
2.3.2 功能模块图
游戏操作模块:
(1)显示模块:a.由图形工厂产生7种不同图形并随机显示在游戏主画面上;
b.显示玩家信息;
(2)控制模块:控制方块下落、移动、翻转等;
(3)设置模块:设置游戏难度、游戏背景等。
2.3.3 用例模型
(1)玩家:玩家进入游戏,可以控制游戏(如控制方块运动与翻转)和设置游戏(如设置游戏难度、游戏背景等)。
(2)计算机:在游戏开始后,计算机随机产生方块,控制方块下落并响应玩家操作,方块下落到底部后,能自动消除满行方块并更新分数,当方块累积到顶部时,报告游戏结束。
三、设计模式
3.1工厂模式
工厂模式又称为工厂方法模式,也叫多态工厂模式或虚拟构造器模式,它属于类创建型模式,满足“开闭原则”。
在俄罗斯方块的设计中,使用图形工厂产生7种不同的方块并在游戏中随机出现。
图形工厂接口:
package test1;
public interface ShapeFactory {
public Block produceBlock();
}
方块接口:
package test1;
public interface Block {
public void change();
public void moveleft();
public void moveright();
public void fall();
}
7个具体的图形工厂实现图形工厂接口,实现produceBlock()方法,随机产生7种不同的方块显示在游戏界面上,7种具体的方块实现方块接口,实现change()、moveleft()、moveright()、fall()三种方法。
3.2 命令模式
命令模式是指将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作模式或事务模式。新的命令容易加到系统中,满足“开闭原则”。
在俄罗斯方块游戏设计中,玩家可对方块进行控制,即玩家向图形类发出请求,在此,便要用到命令模式,将玩家对图形类的请求封装为对象,然后放在类中。
命令接口Command中定义了抽象方法execute():
package test1;
public interface Command {
public void execute();
文档评论(0)