本科毕业设计java课程设计实验报告俄罗斯方块Word文件下载.docx
- 文档编号:14710531
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:24
- 大小:163.63KB
本科毕业设计java课程设计实验报告俄罗斯方块Word文件下载.docx
《本科毕业设计java课程设计实验报告俄罗斯方块Word文件下载.docx》由会员分享,可在线阅读,更多相关《本科毕业设计java课程设计实验报告俄罗斯方块Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
●游戏区:
玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。
●游戏控制:
玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。
●玩家游戏信息存储及删除:
玩家的得分在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。
游戏软件随即不断的下落其中方块中的一种,玩家在方块落到底部之前将方块尽量整齐的摆放好,以便能够对满一行进行消除,玩家可以旋转,左右移动方块,以选择最佳的摆放位置和方式,也可以加快下落的速度,甚至可以直接落到底部,以便节省游戏的时间。
当方块落到底部的时候,就不能进行操作的,此时会在顶部出现另一个方块。
在堆放方块的时候,如果一行堆满的话,则进行消行,上面的方块自动的向下移动一行。
消除一行可以得到100分,
工作计划与进度安排:
第18周:
布置课程设计任务,查阅资料,分组设计,程序调试。
第19周:
程序调试,编写课程设计报告,验收,答辩。
指导教师:
2013年6月20日
专业负责人:
学院教学副院长:
目录
1.课设软件主要功能…………………………………………1
2.类总体设…………………………………………..1
2.1类组合关系图………………………………….………1
2.2主类……………………………….…………2
2.3其它类…………………….……………………..2
3.类详细设计…………………………………………2
3.1ERS_Block主类……..…………………………….……..2
3.2Command处理控制类…….……………………….….…4
3.3GameCanvas游戏画布类………….………………………4
3.4Block方块类............……………….…….………………….6
4.关键类成员函数流程图及代码………………………..….…..7
5.软件运行结果………………………………………………...17
结论……………………...…………………………….………20
参考文献……………….……………………………………...20
1.课设软件主要功能
本系统是一个俄罗斯方块游戏的系统设计[1],实现的基本功能就是能实现经典俄罗斯方块游戏的基本功能。
如用键盘上的空格下左右键来控制方块的变形,移动等功能。
点击控制面板上的开始游戏,游戏暂停,提高级数,降低级数退出游戏等按钮来实现游戏的开始,暂停,停止游戏,增加难度,降低难度等功能。
图1.1功能图
2.类总体设计
2.1类组合关系图
Mypanel
Command
MyTimer
ERS-Block
图2.1.类组合关系图
2.2主类
ERS_Block继承Frame类负责游戏全局的控制[2]。
对开始游戏、暂停/继续游戏、结束游戏、等级设置。
玩家可自行设定游戏等级,主要提供10种级别,级别越高,游戏速度越快,难度越大
2.3其他类
1.Mypanel继承Panel类。
2.Block是方块类控制块的移动,下落变形功能。
七种类型方块的父类,定义了所有类型方块的共同特征和行为。
3.GameCanvas是游戏画布类,继承Canvas类,界面设计应遵循简介美观方便易用的基本原则在游戏区显示方块。
4.Command类是控制按钮类。
5.MyTimer类继承自线程类Thead。
包含run()方法,sleep()方法,控制游戏的速度。
6.WinListener类继承WindowAdapter类。
3.类详细设计
3.1ERS_Block主类
图3.1主类数据透视图
定义成员变量[3]
1右边信息窗体的布局
MyPanelinfoScr=newMyPanel();
infoScr.setLayout(newGridLayout(4,1,0,5));
infoScr.setSize(120,300);
2定义标签和初始值
Labelscorep=newLabel("
分数:
"
Label.LEFT);
Labellevelp=newLabel("
级数:
3右边控制按钮窗体的布局
MyPanelcontrolScr=newMyPanel();
controlScr.setLayout(newGridLayout(5,1,0,5));
rightScr.add(controlScr);
4定义按钮play
Buttonplay_b=newButton("
开始游戏"
);
play_b.setSize(newDimension(50,200));
定义按钮LevelUP
Buttonlevel_up_b=newButton("
提高级数"
level_up_b.setSize(newDimension(50,200));
5定义按钮LevelDown
Buttonlevel_down_b=newButton("
降低级数"
level_down_b.setSize(newDimension(50,200));
6定义按钮LevelPause
Buttonpause_b=newButton("
游戏暂停"
pause_b.setSize(newDimension(50,200));
7定义按钮Quit
Buttonquit_b=newButton("
退出游戏"
quit_b.setSize(newDimension(50,200));
;
成员方法
1俄罗斯方块类的构造方法
方法定义:
ERS_Block(Stringtitle)
2isGameOver方法
privatebooleanisGameOver()
功能描述:
该方法是判断游戏是否该结束了,只需要判断窗口中的最顶端那一行中是否有方块,同时也要判断最底端的是否也有,如果都有即结束。
3.2Command处理控制类
图3.2Command类数据透视图
成员变量[4]:
给按钮编号
intbutton_play
intbutton_levelup
intbutton_leveldown
intbutton_quit;
intbutton_pause
intcurButton;
GameCanvasscr;
成员方法:
1控制按钮类的构造方法
Command(intbutton,GameCanvasscr)
2按钮执行方法
publicvoidactionPerformed(ActionEvente)
功能:
点击按钮实现游戏的开始,结束,升级,降级,暂停[5]。
3.3GameCanvas游戏画布类
图3.3GameCanvas类数据透视图
成员变量:
小方块边长:
finalint0unitSize=30
正方格的行数:
introwNum
方格的列数:
intcolumnNum
允许有多少行未削:
intmaxAllowRowNum
新出现块的起始行坐标:
intblockInitRow
出现块的起始列坐标:
intblockInitCol
屏幕数组:
int[][]scrArr
对方快的引用:
Blockb
2.画布类的构造方法
成员方法[5]:
1初始化屏幕,并将屏幕数组清零的方法
方法定义:
voidinitScr()
2重新刷新画布方法
publicvoidpaint(Graphicsg)
3画方块的方法
publicvoiddrawUnit(introw,intcol,inttype)
以背景为颜色画,画正在下落的方块,画已经落下的方块。
4块的初始v行坐标方法
publicintgetInitRow()
返回新块的初始行坐标:
return(blockInitRow)
5返回新块的初始列坐标方法
publicintgetInitCol()
返回新块的初始列坐标:
return(blockInitCol)
6满行删除方法
voiddeleteFullLine()
这个就是实现如何将行消除的,其实就是在判断了该行该消除时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消一行的视觉效果[6]。
3.3Block方块类
图3.3Block类数据透视图
块的模式编号:
intblockType;
块的翻转状态:
intturnState;
块的下落状态:
intblockState;
块在画布上的坐标:
introw,col;
1)fallDown方法
publicvoidfallDown()
实现方块的运行,下落。
2)leftMove()
方法方法定义:
publicsynchronizedbooleanleftMove()
将当前画移动到所左面的位置。
3)rightMove()方法
privatebooleanrightMove()
将方块想右边移动。
4)方法
publicvoidturnNext()
实现方块的旋转。
5)leftturn方法
privatesynchronizedbooleanleftturn()
将当前块实现翻转。
6)deleteFullLine方法
privatebooleandeleteFullLine()
实现满行删除的方法。
7)erase方法
privatevoiderase()
将当前块从画布的对应位置移除。
8)display方法
privatevoiddisplay()
实现重画画布的时候显示当前块
4.关键类成员函数流程图及代码
4.1系统流程图
图4.1系统流程图[7]
4.2源代码[7]
importjava.awt.*;
importjava.awt.event.*;
//俄罗斯方块类
classERS_BlockextendsFrame{
publicstaticbooleanisPlay=false;
publicstaticintlevel=1,score=0;
publicstaticTextFieldscoreField,levelField;
publics
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 java 课程设计 实验 报告 俄罗斯方块