JAVA程序设计课程设计报告课题:俄罗斯方块单人游戏姓名:赵云杰学号:201417030202同组姓名:刘杨、汪世军、成功专业班级:网络工程14102班指导教师:谭文学设计时间:评阅意见:评定成绩:指导老师签名:年月日目录1.系统概述………………………………………………32.设计说明书……………………………………………53.系统操作界面…………………………………………74.源程序编码……………………………………………285.测试计划………………………………………………296.改进意见…………………………………………………317.课程设计心得体会………………………………………328.参考书籍、资料…………………………………………34系统概述1.1现状分析在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。1.2项目要求俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下:(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。(2)游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。(3)级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大。1.3系统功能模块示意图设计说明1.1游戏区模块游戏区游戏控制显示玩家操作显示操作结果开始暂停/继续提高等级退出降低等级俄罗斯方块游戏1.2控制区模块1.3系统流程图游戏区模块创建游戏区处理玩家游戏操作显示游戏结果游戏控制模块开始游戏暂停游戏初始级别设置退出游戏1.4模块简介(1)模块功能简介:模块4-方块颜色、形状、变化此模块主要通过接口、类,来实现俄罗斯方块的颜色、形状(共28种形态)、变化(包括移动与变形)(2)功能模块图:模块实现代码:开始设置初始级别创建游戏区游戏开局随机选择方块类型是否到顶部方块下落一行游戏结束是否处理玩家操作是否到顶部方块方块的颜色(出现时为绿色,提示出现时为红色)方块的形状:28种方块的变化(移动与变形)classErsBoximplementsCloneable{privatebooleanisColor;privateDimensionsize=newDimension();publicErsBox(booleanisColor){this.isColor=isColor;}publicbooleanisColorBox(){returnisColor;}publicvoidsetColor(booleanisColor){this.isColor=isColor;}publicDimensiongetSize(){returnsize;}publicvoidsetSize(Dimensionsize){this.size=size;}publicObjectclone(){Objectcloned=null;try{cloned=super.clone();}catch(Exceptionex){ex.printStackTrace();}returncloned;}}classErsBlockextendsThread{publicfinalstaticintboxes_rows=4;publicfinalstaticintboxes_cols=4;publicfinalstaticintflatgene=3;publicfinalstaticintbetweenleveltime=50;privatefinalstaticintblockkindnum=7;privatefinalstaticintblockstatusnum=4;publicfinalstaticint[][]STYLES={//共28种状态{0x0f00,0x4444,0x0f00,0x4444},//长条型的四种状态{0x04e0,0x0464,0x00e4,0x04c4},//'T'型的四种状态{0x4620,0x6c00,0x4620,0x6c00},//反'Z'型的四种状态{0x2640,0xc600,0x2640,0xc600},//'Z'型的四种状态{0x6220,0x1700,0x2230,0x0740},//'7'型的四种状态{0x6440,0x0e20,0x44c0,0x8e00},//反'7'型的四种状态{0x0660,0x0660,0x0660,0x0660},//方块的四种状态};privateGameCanvascanvas;privateErsBox[][]boxes=newErsBox[boxes_rows][boxes_cols];privateintstyle,y,x,level;privatebooleanpausing=false,moving=true;publicErsBlock(intstyle,inty,intx,intlevel,GameCanvascanvas){this.style=style;this.y=y;this.x=x;this.level=level;this.canvas=canvas;intkey=0x8000;for(inti=0;i<boxes.length;i++){for(intj=0;j<boxes[i].length;j...