java—课程设计实验报告俄罗斯方块学位论文.doc
《java—课程设计实验报告俄罗斯方块学位论文.doc》由会员分享,可在线阅读,更多相关《java—课程设计实验报告俄罗斯方块学位论文.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、成 绩 评 定 表学生姓名班级学号 专 业电子信息工程课程设计题目俄罗斯方块游戏设计评语组长签字:成绩日期 2013 年 月 日课程设计任务书学 院信息学院专 业电子信息工程学生姓名班级学号 课程设计题目俄罗斯方块游戏设计实践教学要求与任务: 俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下:l 游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。l 游戏控制:玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。l 玩家游戏信息存储及删除:玩家的得分在前五名时,将会记录在排行榜上,同
2、时可为玩家清空排行榜。游戏软件随即不断的下落其中方块中的一种,玩家在方块落到底部之前将方块尽量整齐的摆放好,以便能够对满一行进行消除,玩家可以旋转,左右移动方块,以选择最佳的摆放位置和方式,也可以加快下落的速度,甚至可以直接落到底部,以便节省游戏的时间。当方块落到底部的时候,就不能进行操作的,此时会在顶部出现另一个方块。在堆放方块的时候,如果一行堆满的话,则进行消行,上面的方块自动的向下移动一行。消除一行可以得到100分, 工作计划与进度安排: 第18周:布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。指导教师: 2013年6月20日专业负责
3、人: 2013年6月20日学院教学副院长: 2013年6月20日目 录1.课设软件主要功能 12.类总体设 .12.1类组合关系图 .12.2主类 .2 2.3其它类 .23.类详细设计 23.1 ERS_Block主类 .2 3.2 Command处理控制类 .43.3 GameCanvas游戏画布类 .43.4 Block方块类.64.关键类成员函数流程图及代码.75.软件运行结果.17结论.20参考文献.201.课设软件主要功能本系统是一个俄罗斯方块游戏的系统设计1,实现的基本功能就是能实现经典俄罗斯方块游戏的基本功能。如用键盘上的空格下左右键来控制方块的变形,移动等功能。点击控制面板上
4、的开始游戏,游戏暂停,提高级数,降低级数退出游戏等按钮来实现游戏的开始,暂停,停止游戏,增加难度,降低难度等功能。 俄罗是方块游戏游戏区游戏控制数据操作 图1.1功能图2.类总体设计2.1类组合关系图MypanelCommandMyTimerERS-Block图2.1. 类组合关系图2.2主类ERS_Block继承Frame类负责游戏全局的控制2。对开始游戏、暂停/继续游戏、结束游戏、等级设置。玩家可自行设定游戏等级,主要提供10种级别,级别越高,游戏速度越快,难度越大2.3其他类1.Mypanel继承Panel类。2.Block是方块类控制块的移动,下落变形功能。七种类型方块的父类,定义了所
5、有类型方块的共同特征和行为。3.GameCanvas是游戏画布类,继承Canvas类,界面设计应遵循简介美观方便易用的基本原则在游戏区显示方块。4.Command类是控制按钮类。5.MyTimer类继承自线程类Thead。包含run()方法,sleep()方法,控制游戏的速度。6.WinListener类继承WindowAdapter类。3.类详细设计3.1ERS_Block主类图3.1主类数据透视图定义成员变量3 右边信息窗体的布局 MyPanel infoScr = new MyPanel(); infoScr.setLayout(new GridLayout(4,1,0,5); info
6、Scr.setSize(120,300); 定义标签和初始值 Label scorep = new Label(分数:,Label.LEFT); Label levelp = new Label(级数:,Label.LEFT); 右边控制按钮窗体的布局 MyPanel controlScr = new MyPanel(); controlScr.setLayout(new GridLayout(5,1,0,5); rightScr.add(controlScr); 定义按钮play Button play_b = new Button(开始游戏); play_b.setSize(new Dim
7、ension(50,200); 定义按钮Level UP Button level_up_b = new Button(提高级数); level_up_b.setSize(new Dimension(50,200); 定义按钮Level Down Button level_down_b =new Button(降低级数); level_down_b.setSize(new Dimension(50,200); 定义按钮Level Pause Button pause_b =new Button(游戏暂停); pause_b.setSize(new Dimension(50,200); 定义按钮
8、Quit Button quit_b = new Button(退出游戏); quit_b.setSize(new Dimension(50,200); ; 成员方法 俄罗斯方块类的构造方法 方法定义:ERS_Block(String title) isGameOver方法方法定义:private boolean isGameOver() 功能描述:该方法是判断游戏是否该结束了,只需要判断窗口中的最顶端那一行中是否有方块,同时也要判断最底端的是否也有,如果都有即结束。 3.2Command处理控制类图3.2Command类数据透视图成员变量4:给按钮编号int button_play int
9、button_levelup int button_leveldown int button_quit ; int button_pause int curButton; GameCanvas scr;成员方法: 控制按钮类的构造方法方法定义:Command(int button,GameCanvas scr) 按钮执行方法 方法定义:public void actionPerformed (ActionEvent e)功能:点击按钮实现游戏的开始,结束,升级,降级,暂停5。3.3GameCanvas游戏画布类图3.3GameCanvas类数据透视图成员变量:小方块边长 :final int
10、0unitSize = 30正方格的行数: int rowNum方格的列数 :int columnNum允许有多少行未削 :int maxAllowRowNum新出现块的起始行坐标 :int blockInitRow出现块的起始列坐标: int blockInitCol屏幕数组: int scrArr对方快的引用:Block b2.画布类的构造方法成员方法5: 初始化屏幕,并将屏幕数组清零的方法方法定义 :void initScr() 重新刷新画布方法方法定义 :public void paint(Graphics g) 画方块的方法方法定义 : public void drawUnit(in
11、t row,int col,int type)功能:以背景为颜色画,画正在下落的方块,画已经落下的方块。 块的初始v行坐标方法方法定义 : public int getInitRow()返回新块的初始行坐标 :return(blockInitRow) 返回新块的初始列坐标方法方法定义 :public int getInitCol()返回新块的初始列坐标 :return(blockInitCol) 满行删除方法方法定义 :void deleteFullLine()功能:这个就是实现如何将行消除的,其实就是在判断了该行该消除时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消一行的视觉
12、效果6。3.3Block方块类图3.3Block类数据透视图成员变量:块的模式编号:int blockType; 块的翻转状态:int turnState; 块的下落状态:int blockState; 块在画布上的坐标:int row,col; GameCanvas scr; 成员方法:1) fallDown方法方法定义:public void fallDown ()功能描述:实现方块的运行,下落。2) leftMove()方法方法定义:public synchronized boolean leftMove()功能描述:将当前画移动到所左面的位置。3) rightMove()方法方法定义:
13、private boolean rightMove ()功能描述:将方块想右边移动。4) 方法方法定义:public void turnNext()功能描述:实现方块的旋转。5) leftturn方法方法定义:private synchronized boolean leftturn()功能描述:将当前块实现翻转。6) deleteFullLine方法方法定义:private boolean deleteFullLine()功能描述:实现满行删除的方法。7) erase方法方法定义:private void erase()功能描述:将当前块从画布的对应位置移除。8) display方法方法定义
14、:private void display()功能描述:实现重画画布的时候显示当前块4.关键类成员函数流程图及代码4.1系统流程图选择游戏等级进入游戏界面开始游戏结束游戏是否到顶部是否到顶部随机选择方块类方块下落一行处理玩家操作 图4.1系统流程图74.2源代码7import java.awt.*; import java.awt.event.*; /俄罗斯方块类 class ERS_Block extends Frame public static boolean isPlay=false; public static int level=1,score=0; public static T
15、extField scoreField,levelField; public static MyTimer timer; GameCanvas gameScr; public static void main(String argus) ERS_Block ers = new ERS_Block(俄罗斯方块游戏 ); WindowListener win_listener = new WinListener(); ers.addWindowListener(win_listener); /俄罗斯方块类的构造方法 ERS_Block(String title) super(title); set
16、Size(600,480); setLayout(new GridLayout(1,2); gameScr = new GameCanvas(); gameScr.addKeyListener(gameScr);timer = new MyTimer(gameScr); timer.setDaemon(true); timer.start(); timer.suspend(); add(gameScr); Panel rightScr = new Panel(); rightScr.setLayout(new GridLayout(2,1,0,30); rightScr.setSize(120
17、,500); add(rightScr); /右边信息窗体的布局 MyPanel infoScr = new MyPanel(); infoScr.setLayout(new GridLayout(4,1,0,5); infoScr.setSize(120,300); rightScr.add(infoScr); /定义标签和初始值 Label scorep = new Label(分数:,Label.LEFT); Label levelp = new Label(级数:,Label.LEFT); scoreField = new TextField(8); levelField = new
18、TextField(8); scoreField.setEditable(false); levelField.setEditable(false); infoScr.add(scorep); infoScr.add(scoreField); infoScr.add(levelp); infoScr.add(levelField); scorep.setSize(new Dimension(20,60); scoreField.setSize(new Dimension(20,60); levelp.setSize(new Dimension(20,60); levelField.setSiz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 实验 报告 俄罗斯方块 学位 论文
限制150内