ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:71.44KB ,
资源ID:13032052      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13032052.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《Java程序设计》实训报告——俄罗斯方块Word文档下载推荐.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《Java程序设计》实训报告——俄罗斯方块Word文档下载推荐.docx

1、3. 游戏难度选择界面设置在程序运行开始时,一共有九种难度供玩家选择,每选一级难 度,都会相应地显示出代表该难度的图片。开始时不设置任何默认的难度,如果玩家不选难度直接按“Enter”进入,将会弹出提示框,提示其先选难度再进入。4. 2、方块下落、变形功能5. 在整个俄罗斯方块游戏中,方块的设计是核心。这里设计了一个方块类:Square( ),用来生成方块以及实现块的左移、右移、向下、变形、重画、同步显示、初始化新块等。6. 3、自动升级功能7. 当分数累积到一定大小时,系统将自动为玩家提高难度。这里设置了每消除10 行方块, 就增加一级难度。当难度增加的时候,方块会相应地改变颜色,以作为对玩

2、家的提示。8. 4、游戏音乐功能9. 游戏开始音乐就自动播放,游戏暂停与结束时音乐相应消除。10. 5、获取帮助功能11. 这里设置了一个类,用来显示帮助,按F1 键就能弹出窗口,显示游戏规则。3.系统功能设计分析1. 俄罗斯方块游戏根据功能的不同,设置了如下12 个类:Square, Command, GameArea, GameSetting, GameOver, Help, ImagePanel, JieMian, MyPanel, MyTimer, PlayMidi, WinListener,每个类的描述如下:2.1 、Square,方块类。这个类中定义了生成方块的方法,用二维数组 i

3、nt pattern, 存放 7 种方块的四种状态。在构造方法中以随机的形式生成方块,同时提供了以下几种方法:reset( ),leftTurn( ),leftMove( ),rightMove( ),fallDown( ),assertValid(int t,int s,int row,int col),dispBlock(int s)。分别实现方块的重画、翻转、左移、右移、下落、同步显示等功能。2.2 、Command,处理控制类。这是一个实现ActionListener 接口的类,主要处理点击按钮事件。类中定义了三个 int 型变量:button_play,button_quit,but

4、ton_pause,和一个boolean 型的变量:pause_resume,并赋值。在 GameArea 类中通过事件响应,在按钮执行方法中调用其值,使用switch 语句,根据不同按钮不同的值,来响应不同的事件。2.3 、GameArea,游戏界面类。GameArea 继承了 JFrame,是俄罗斯方块的主要游戏界面。这个类定义了GameSetting 类的 gameScr 对象和ImagePanel 类的 imagepanel 对象作为游戏区域面板和控制区域面板。在游戏区域,主要是根据相应格子的设置标志来显示相应的图形图片,这样就实现了俄罗斯方块的实时显示。2.4 、GameSettin

5、g, 游戏画布类。这个类生成的对象将作为游戏界面的方块下落区域,画布的设置为 15 行 10 列,当中的方格边长为30,类中还定义了一个二维数组int scrArr作为屏幕数组,表示每一个方格。游戏区域中每一个方格是否存在游戏方块是由该方格的值来决定的,如果该方格的值为1,则表示该方格中存在游戏方块;如果该方格中的值为0,则表示该方格中不存在游戏方块,因此二维数组用于记录游戏区域中每个小方格的值。此外,类中还定义了画方块的方法,根据不同的难度画出不同颜色的方块。单击 Play 按钮时,系统调用 initScr( )方法,初始化屏幕,将屏幕数组清零。当满足满行删除的条件时,系统调用 delete

6、FullLine( )方法,进行删行加分,而且每删除十行,难度自动增加一级,方块颜色改变,并在难度显示框中相应显示。2.5 、GameOver,游戏结束弹出提示框类。当游戏结束时,系统弹出提示,包括玩家分数以及询问玩家要继续游戏还是退出。2.6 、Help,帮助类。在游戏界面,按F1 键,弹出提示窗口,获取帮助。2.7 、ImagePanel,背景图片类。这个类继承了JPanel 类,用来作为游戏界面中控制区域的容器,并添加图片。2.8 、JieMian,主界面类。这个类继承了JPanel 类,作为游戏的第一个界面,也是难度选择界面。定义了 9 个单选按钮,当玩家未选任何难度就按Enter 时

7、,系统会弹出一个提示框, 提示玩家先选难度再进入。2.9 、MyPanel,重写 MyPanel 类,使 Panel 的四周留空间。2.10 、MyTimer,定时线程类。类中定义了一个run()方法,用sleep()函数实现方块下落的快慢,即调节难度。2.11 、PlayMidi,添加音乐类。在游戏过程中添加背景音乐。2.12、WinListener,关闭窗口类。4. 主要类的 UML 类图表示1. Square 2. int pattern 3. int SquareType 4. int SquareState 5. int blockState 6. int row,col 7. Ga

8、meSetting scr 8.+ void reset() 9.+ void leftTurn() 10. + void leftMove() 11. + void rightMove() 12. + boolean fallDown() 13. boolean assertValid(int t,int s,int row,int col) 14. + synchronized void dispBlock(int s) 5.(Square 类的 UML 类图表示)15. GameSetting 16. int unitSize 17. int rowNum 18. int columnN

9、um 19. int maxAllowRowNum 20. int SquareInitRo 21. int SquareInitCol 22. int scrArr 23.Square b 24.initScr() 25.+ void paint(Graphics g) 26.+ void drawUnit(int row,int col,int type) 27.+ Square getBlock() 28.+ int getScrArrXY(int row,int col) 29.+ int getInitRow() 30.+ int getInitCol() 31.void delet

10、eFullLine() 32.boolean isGameEnd() 33.+ void keyPressed(KeyEvent e) 三、详细设计:1 模型层设计1) 图形的产生通过图形工厂类ShapeFactory 的 getShape(ShapeListener listener)方法随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是:你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后根据你传进来的产品,而决定工厂人生产什么产品,产生出

11、来产品后,最后要返回您要的这个东西。随机产生一个数随机数1234567一字形Z 字形反 Z 形7 字形反 7 形倒T 形田字型2)图形数据结购定义一个 4x4 方阵,共 16 个小格。用“0”和“1”来表示每个方格是绘制还是空白,由此可以组合出多种图形,如图所示:其中图一表示为0,0,0,0,1,1,1,1 ,0,0,0,0,0,0,0,0其中图二表示为0,0,0,0,0,1,1,0 ,0,1,1,0,其中图三表示为0,0,0,0,0,1,0,0 ,0,1,1,1,其中图四表示为0,0,0,0,0,1,0,1 ,0,0,1,0方块的旋转是通过绘制 4 个方向的方块,在不同旋转角度显示不同方向的

12、方块来完成的。所以程序要控制方块的旋转方向,只要控制显示哪副图就可以了。本游戏是用一个三维数组int shapes = new int;作为存储方块的数据结构来保存方块的 28 种状态的。代码如下:public final static int STYLES = / 共 28 种状态 0x0f00, 0x4444, 0x0f00, 0x4444 , / 长条型的四种状态 0x04e0, 0x0464, 0x00e4, 0x04c4 , / T型的四种状态 0x4620, 0x6c00, 0x4620, 0x6c00 , / 反Z 0x2640, 0xc600, 0x2640, 0xc600 ,

13、 / 0x6220, 0x1700, 0x2230, 0x0740 , / 7 0x6440, 0x0e20, 0x44c0, 0x8e00 , / 反 0x0660, 0x0660, 0x0660, 0x0660 , / 方块的四种状态; /* * 构造函数*/ public RussiaBlock(int y, int x, int level, int style) this.y = y; this.x = x;this.level = level; moving = true; pausing = false; this.style = style;canvas = GameCanvas.getCanv

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1