java课程设计实验报告俄罗斯方块(可编辑)

上传人:cl****1 文档编号:512458788 上传时间:2023-08-01 格式:DOC 页数:30 大小:650KB
返回 下载 相关 举报
java课程设计实验报告俄罗斯方块(可编辑)_第1页
第1页 / 共30页
java课程设计实验报告俄罗斯方块(可编辑)_第2页
第2页 / 共30页
java课程设计实验报告俄罗斯方块(可编辑)_第3页
第3页 / 共30页
java课程设计实验报告俄罗斯方块(可编辑)_第4页
第4页 / 共30页
java课程设计实验报告俄罗斯方块(可编辑)_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《java课程设计实验报告俄罗斯方块(可编辑)》由会员分享,可在线阅读,更多相关《java课程设计实验报告俄罗斯方块(可编辑)(30页珍藏版)》请在金锄头文库上搜索。

1、java课程设计实验报告俄罗斯方块(可编辑)(文档可以直接使用,也可根据实际需要修改使用 ,可编辑推荐下载)成绩评定表学生姓名班级学号专业电子信息工课程设计题目俄罗斯方块游戏程设计评语组长签字:成绩日期2021年 月 日课程设计任务书学院信息学院专业电子信息工程学生姓名班级学号课程设计题目俄罗斯方块游戏设计实践教学要求与任务:俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下:游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将 要出现方块的提示。游戏控制:玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效

2、控制。玩家游戏信息存储及删除:玩家的得分在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。游戏软件随即不断的下落其中方块中的一种,玩家在方块落到底部之前将方块尽量整齐的摆放好,以便能够对满一行进行消除,玩家可以旋转,左右移动方块,以选择最佳的摆放位置和方 式,也可以加快下落的速度,甚至可以直接落到底部,以便节省游戏的时间。当方块落到底部的 时候,就不能进行操作的,此时会在顶部出现另一个方块。在堆放方块的时候,如果一行堆满的 话,则进行消行,上面的方块自动的向下移动一行。消除一行可以得到100分,工作计划与进度安排:第18周:布置课程设计任务,查阅资料,分组设计,程序调试。第19周:程序调

3、试,编写课程设计报告,验收,答辩。指导教师:2013年6月20日专业负责人:2013年6月20日学院教学副院长:2013年6月20日目录1. 课设软件主要功能2类总体设 .12.1类组合关系图 12.2 主类 22.3其它类 .23. 类详细设计 23.1 ERS_Block主类 .23.2 Comma nd处理控制类 .43.3 GameCanvas游戏画布类 43.4 Block 方块类 . . .64. 关键类成员函数流程图及代码 . . .75. 软件运行结果 .17结论 . . 20参考文献 . .201.课设软件主要功能本系统是一个俄罗斯方块游戏的系统设计1,实现的基本功能就是能实

4、现经典俄罗斯方块游戏的基本功能。如用键盘上的空格下左右键来控制方块的变形,移动等功能。点击控制面板上 的开始游戏,游戏暂停,提高级数,降低级数退出游戏等按钮来实现游戏的开始,暂停,停止 游戏,增加难度,降低难度等功能。图1.1功能图2. 类总体设计2.1类组合关系图图2.1.类组合关系图2.2主类ERS_Block继承Frame类负责游戏全局的控制2。对开始游戏、暂停/继续游戏、结束游戏、等级设 置。玩家可自行设定游戏等级,主要提供10种级别,级别越高,游戏速度越快,难度越大2.3其他类1. Mypanel 继承 Panel 类。2. Block是方块类控制块的移动,下落变形功能。七种类型方块

5、的父类,定义了所有类型方块的共同特征和行为。3. GameCanvas是游戏画布类,继承Canvas类,界面设计应遵循简介美观方便易用的基本原则在游戏区显示方块。4. Comma nd类是控制按钮类。5. MyTimer类继承自线程类 Thead。包含run()方法,sleep()方法,控制游戏的速度。6. WinListener类继承 WindowAdapter 类。3. 类详细设计3.1ERS_Block 主类J ER&_Block ERS.Block (String title)v main (StringQ 白rgu唱-$ isPlay 0 level 0 SCOTS-scQTeFil

6、d& levelFildtimer- g am&cr图3.1主类数据透视图定义成员变量 右边信息窗体的布局MyPa nel in foScr = new MyPa nel();infoScr.setLayout(new GridLayout(4,1,0,5);in foScr.setSize(120,300); 定义标签和初始值Label scorep = new Label(分数 :,Label.LEFT);Label levelp = new Label(级数 :,Label.LEFT); 右边控制按钮窗体的布局 MyPanel controlScr = new MyPanel();con

7、trolScr.setLayout(new GridLayout(5,1,0,5); rightScr.add(controlScr); 定义按钮 playButton play_b = new Button(开始游戏 );play_b.setSize(new Dimension(50,200);定义按钮 Level UPButton level_up_b = new Button(提高级数 );level_up_b.setSize(new Dimension(50,200); 定义按钮 Level DownButton level_down_b =new Button(降低级数 );leve

8、l_down_b.setSize(new Dimension(50,200); 定义按钮 Level PauseButton pause_b =new Button(游戏暂停 );pause_b.setSize(new Dimension(50,200); 定义按钮 QuitButton quit_b = new Button(退出游戏 );quit_b.setSize(new Dimension(50,200); ;成员方法 俄罗斯方块类的构造方法 方法定义: ERS_Block(String title) isGameOver 方法方法定义: private boolean isGameO

9、ver() 功能描述:该方法是判断游戏是否该结束了,只需要判断窗口中的最顶端那一行中是否有方块,同 时也要判断最底端的是否也有,如果都有即结束。3.2Command处理控制类匚 ormnandV ComrYiand (nt button, GameCanvas scr)v action Performed (ActionEvent e)O button_play,z buttonjevelup button取巴kJcrwriQ button_quit严 button_paLi&r pause_resLimc严 curButton-孕 scr图3.2Command类数据透视图成员变量:给按钮编号

10、int butt on _playint butt on _levelupint butt on _leveldow nint butt on _quit ;int butt on _pauseint curButt on;GameCa nvas scr;成员方法: 控制按钮类的构造方法方法定义: Comma nd(i nt butt on, GameCa nvas scr) 按钮执行方法5方法定义: public void action Performed (ActionEvent e)功能:点击按钮实现游戏的开始,结束,升级,降级,暂停3.3GameCanvas游戏画布类GameCanva

11、sv GameCanvas 0 initScr Q、paint Graphics g)-& drawUnit (int row, int col, int type)7 getSlefk 0-v getScrArrXY int row, int go I)令 getlnkRow 0v g#tlni rowMum- columnNLUTif ma)cA.llcwRowNuni-/ blocklnitRow ? blodklnitColG scrArr-b图3.3GameCanvas类数据透视图成员变量:小方块边长 :final int OunitSize = 30正方格的行数:int rowNu

12、m方格的列数 :int columnNum允许有多少行未削:int maxAllowRowNum新出现块的起始行坐标:int block In itRow出现块的起始列坐标:int block In itCol屏幕数组:in t scrArr对方快的引用:Block b2.画布类的构造方法成员方法5:初始化屏幕,并将屏幕数组清零的方法方法定义:void initScr()重新刷新画布方法方法定义 :public void paint(Graphics g)画方块的方法方法定义 :public void draw Un it(i nt row,i nt col,i nt type)功能:以背景为

13、颜色画,画正在下落的方块,画已经落下的方块。块的初始v行坐标方法方法定义 :public in t getI nitRow()返回新块的初始行坐标:return(blocklnitRow)返回新块的初始列坐标方法方法定义 :public int getInitCol()返回新块的初始列坐标:return(blocklnitCol)满行删除方法方法定义:void deleteFullLine()功能:这个就是实现如何将行消除的,其实就是在判断了该行该消除时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消一行的视觉效果。3.3Block方块类BlockClccli (Ijame匚scrjv res07 leftTurn 0v leftMove Qv rightMoe 02 fall Down Q0 assertValid int t, irrt sr int rowd irrt col)v dipBlock: (Irrt s)聿 p attirnf blockTypez turn State/ block StateZ rowr colz scr图3.3Block类数据透视图int blockType;int blockState;块的翻转状态:int turnState;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号