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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

综合实践T111齐利刚俄罗斯方块Word文档格式.docx

1、目 录摘 要 IAbstract II第1章 JAVA语言编程简介 11.1JAVA语言简介 11.2 JAVA语言在网络上的应用 1第2章 课程设计的目的和要求 32.1 课程设计的目的 32.2 课程设计的要求 3第3章 俄罗斯方块的基本玩法 43.1游戏规则 43.2 游戏功能和操作 43.2.1 游戏功能 43.2.2基本操作 4第4章 整体设计 54.1 设计框图 54.2 俄罗斯方块功能部分 54.2.1 方块装载 54.2.2 处理键盘事件 64.2.3 判断满行及消行 74.2.4显示控制 7第5章 实验结果 8结 论 10参考文献 11附 录 12第1章 JAVA语言编程简介

2、 1.1JAVA语言简介Sun Microsystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK: Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。Java源程序编写借助于记事本,Editpuls,UltraEdit等第三方编辑工具。所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需

3、要用这些类来访问Java语言的功能。JDK 是整个Java的核心,包括了Java运行环境(Java RuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。JDK里面是java类库和java的语言规范,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jroc

4、ket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。1.2 JAVA语言在网络上的应用 Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获

5、取该对象所代表的资源。1.3 软硬件需求 运行此游戏最低的软硬件要求入表1-1所示表1-1 硬件参数操作系统Windows98/me/2000/XP/2003内存容量64MB显卡要求8M声卡要求支持DirectX 8.0 音效卡交互工具键盘/鼠标CPU奔腾133以上硬盘空间400MB开发软件Java可视化编程3.0以上版本第2章 课程设计的目的和要求2.1 课程设计的目的通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编程基本功,掌握JDK、Myeclipse等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java预言

6、的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2.2 课程设计的要求实现俄罗斯方块游戏,具体的游戏方块图形的设计是比较重要的一个方面。因为俄罗斯方块游戏中主要的动作就是控制游戏方块的移动和翻转,以便于组成一行行连续的方块从而增加游戏的空间,让它消除。由于主要的游戏动作都集中在这个游戏方块上,因此游戏方块的设计就显得格外重要了。为了增加程序的可拓展新,这里设计一个游戏方块的基类,各个具体的游戏方块都是从这个基类开始继承。这样,当需要增加游戏方块时就不用重新设计新的类,只需要从这个基类集成出一个类就可以了。第3章 俄罗斯方块的基本玩法3.1游戏规则俄罗斯方块游戏规则是对于随

7、机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。3.2 游戏功能和操作3.2.1 游戏功能游戏界面需求:良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为

8、顺时针或逆时针变形,一般为逆时针。键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。3.2.2基本操作基本操作就是点击程序运行键游戏开始运行,通过键盘的上、下、左、右方向控制键来控制产生随机图形的位置和形状,即方向键上来控制图形的旋转,方向键下加速图形下落速度,方向键左和右分别控制图形左右移动,从而完成整个游戏的控制。第4章 整体设计4.1 设计框图俄罗斯方块游戏是对于随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形

9、、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏流程图如图4-1所示.图4-1 俄罗斯方块游戏流程图4.2 俄罗斯方块功能部分程序一运行,游戏就开始了,出现的方块是随机的,然后你就用键盘上面的上下左右这四个方向键来控制游戏的运行。其中上键,控制游戏方块的形状改变,下键控制它下落的速度,左右键分别控制左右。当填满一层后,会自动消除。若游戏方块上顶之后不再出新的方块,那游戏结束。以下是主要功能模块设计。4.2.1 方块装载定义一个随机变量,然后调用随机函数(rand=(int)(Math.rando

10、m()*7)+1),所取得的随机数在1到7之间,用这7个数字表示7中常见的方块,并从7种方块中随机抽取图形。每一种方块都是由两个一维数组(x,y)表示的,其中一个用来保存方块所在行,另一个数组用来保存方块所在列,这样有利于方块在屏幕上准确而有活动的定位。所有7种图形都是在三行三列的地图中研究后给出的坐标,给出的坐标也是方块在游戏地图中靠最顶行的坐标。这就好象方块存在于一个三行三列大小的图形中而够成的一张图片。图片的运动也就是方块的运动,这样,要实现方块的变形,就要在三行三列的图形中定义一个最左上角的基点,方块运动,基点也跟着运动。基点坐标在加载方块是加载,基点的存储空间在加载每个方块数组的最后

11、定义。这样使得方块在游戏地图中的每一个地方都可以变形。也不会因为变形而方块在游戏地图中的变动很厉害,出现瞬移的现象。图形坐标装载完后,先判断在方块的下一行是否已有方块,如果有则说明方块以到达游戏地图的顶端,游戏将结束。没有则先把方块坐标保存,这是为了在方块向下移动的时候在它的后面不会有虚假的方块,因为方块向下运动,记录的是新一行的方块坐标,但旧一行的没有消掉,所以要先旧方块的坐标保存起来,搽掉旧方块再显示方块。这样也会减少屏幕的闪烁问题。如图4-2所示。图4-2方块装载4.2.2 处理键盘事件keyDown()是处理按键的事件,刚开始运行程序时,游戏还没有开始,这时除S键(解键盘锁的键)是有用

12、外,其他的键都给锁住,这样可以避免键盘过早的控制游戏。在判断是否在S键的语句中还加了对游戏锁取反并判断是否为真的语句,两个语句同时成立时,才会解开游戏锁,程序开始时,游戏还没有开始,游戏锁是关的,但是取反后它就是真的,所以只要按下S键后,两个语句都成立。这样做是为了在游戏开始时再按下S键,游戏不会重新开始,即游戏开始后,S键就没有用了。按下S键后,游戏锁才被解开,键盘也被解开。每当有按键,也就是方块要产生变化时,先保存方块的坐标,便于清理旧方块,显示新方块。当方块要进行上(变形)、下、左、右变化时,先对方块将要移动到的位置进行判断,判断是否有障碍,有则保持原来的位置不变,没有则根据所按的键执行

13、相关的操作。再把方块的位置显示在屏幕上。方块的移动其实也只是对行或列坐标的增减而己。4.2.3 判断满行及消行满行判断及消行是到达事件中的一部分,是方块堆积,并对每个小方块所在行个数统计后,利用循环语句从屏幕最底行依次向上对有方块的每一行进行判断,判断是不是空行,如果那一行是空行则证明它以上的所有行都将不会有方块,也就不必要向上查找了。不是则判断当前行是否满行的,如果满行则看有个连续几个满行的在一起。然后再判断是否有行满的情况,否的话就继续检查上一行。不然就进行消行处理及方块下移。最后再向上查找满行情况直到本行为空时为止。消行及方块下移:当有行满时,则说明需要消行,有消行那么所有方块则要下移。

14、当本行满时,则以间隔为1向上查找,当遇到所查找的行也是满行,那么它的间隔自增1,然后继续向上查找,直到那一行不是满行的情况,则将此行所有数据信息移到本行,以后本行以上的每行都会以这个间隔去判断它将获得的那行数据,可以则继承,不然和上述一样操作。如果将获得的那行数据为空行,则只须对本行的数据清空即可,那么方块下移也就完成。4.2.4显示控制方块组成:小方块是由三个不同颜色的正方形方框组成,其中正方形有实心的也有空心的,这样使得方块变得好看点能看出堆积的视觉效果.每个图形是由四个小方块拼凑而成的。显示控制时先看之前是否发生过消行事件,如果发生了清除屏幕所有方块、成绩和关数,全部重新绘置,使得消行视

15、觉化。然后再清除旧图形,绘制新图形。其实消除屏幕只是将屏幕重新画一次而己,清除成绩和关数,也只是在有显示成绩和关数的地方画一个白色的框而己。重新绘置新点,就是从下向上判断看哪些地方有方块的就得新画一个小方块,没有的不画。第5章 实验结果通过键盘的上、下、左、右方向控制键来控制产生随机图形的位置和形状,即方向键上来控制图形的旋转,方向键下加速图形下落速度,方向键左和右分别控制图形左右移动,从而完成整个游戏的控制。运行结果如下:(1)运行程序出现俄罗斯方块界面,产生随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)开始慢慢下落,如图5-1所示:图5-1 俄罗斯方块初始界面

16、(2)控制游戏方块的形状改变,下键控制它下落的速度,左右键分别控制左右。当填满一层后,会自动消除,如图5-2所示。图5-2 消除一行(3)若游戏方块上顶之后不再出新的方块,那游戏结束,如图5-3所示。图5-3 游戏结束结 论综合实践部分,是培养学生动手能力,思维能力的重要环节。这次通过综合设计,我完成了俄罗斯游戏的软件开发任务。在整个开发过程中遇到了很多问题,如方块的装载和变形、屏幕太闪烁的问题、满行判断及消行的处理。但最终都被我一一解决。这个游戏虽然玩起来比较简单,但是用语言来把它编写出来,其实还是需要一定思维能力的。回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件

17、,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时也体验到了搞软件开发的困难度。在这次设计的同时,我又从中学到了许多东西。在这里非常感谢指导自己的老师和帮助自己的同学!参考文献1.齐治昌、谭庆平、宁洪编著,软件工程 北京:高等教育出版社 1997年7月2.印旻编著,java语言与面向对象程序设计 北京:清华大学出版社 2000年9月3.荣钦科技编著,Java 2 游戏设计 北京:清华大学出版社 2004年11月4.朱福喜编著,Java 程序设计技巧与开发实例 北京:人民邮电出版社 2004年2月5.JSP编程技巧/清宏计算机工作室编著. 北京:机械工业出版社,2001.16.精通

18、JBuilder 3环境下的JAVA编程/锐思创作室编著. 北京:人民邮电出版社., 2001.17.深入JAVA Servlet 网络编程. 清华大学出版社8.Struts开发入门与项目实践. 北京:人民邮电出版社, 2005.8附 录 主要程序:(1)Controller控制整个游戏的运行package text01;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.JOptionPane;/* * 控制类,控制图形,障碍物,处理逻辑和响应事件 */public class

19、Controller extends KeyAdapter implements ShapeListener Shape shape; Ground ground; ShapePanel shapePanel; ShapeFactory shapeFactory; /* * *controller的方法 /构造 public Controller(ShapeFactory shapeFactory,ShapePanel shapePanel,Ground ground) System.out.println(Controller的构造); this.shapePanel=shapePanel;

20、 this.shapeFactory=shapeFactory; this.ground=ground ; public void newGame()Controller的newGame方法开始新游戏 shape=shapeFactory.setShape(this); /按键响应方法 public void keyPressed(KeyEvent e) 您按了一个按键 / TODO 自动生成的方法存根 switch(e.getKeyCode() case KeyEvent.VK_UP: System.out.println(1232 if(ground.isMoveable(shape, s

21、hape.ROTATE) shape.roate(); break; case KeyEvent.VK_DOWN: if(ground.isMoveable(shape, shape.DOWN) shape.moveDown(); case KeyEvent.VK_LEFT: if(ground.isMoveable(shape, shape.LEFT) shape.moveLeft(); case KeyEvent.VK_RIGHT: if(ground.isMoveable(shape, shape.RIGHT) shape.moveRight(); shapePanel.display(

22、ground,shape); Override public void shapeMoveDown(Shape shape) Controller实现ShapeListener接口的shapeMoveDown方法 /synchronized保证在同一时刻最多只有一个线程执行该段代码 public synchronized boolean isShapeMoveDownNable(Shape shape) Controller实现ShapeListener接口的isShapeMoveDownNable方法 if(this.shape!=shape) return false;/ shapePan

23、el.display(ground,shape); if(ground.isMoveable(shape, shape.DOWN) return true; ground.acceptShape(this.shape); if(!ground.isFull() /判断能否产生新图形 结束游戏 this.shape=shapeFactory.setShape(this);/ else/ this.shape=shapeFactory.setShape(this);/ JOptionPane.showConfirmDialog(null, 游戏结束,提示:, JOptionPane.YES_NO_

24、OPTION);/ return false;(2)图形产生import java.util.Random; * 图形生产 public class ShapeFactory private int stastus; /数组中的标志用来判断是否画图形 * 定义三维数组实现图形并初始化 private int shapes=new int 1,0,0,0, 1,1,1,0, 0,0,0,0, 0,0,0,0 , 1,1,0,0, 1,0,0,0, 1,1,1,0, 0,0,1,0, 0,0,0,0, 0,1,0,0, 0,1,0,0, 1,1,0,0, , 1,1,1,0, 1,0,0,0, 0,0,0,0, 0,0,0,0 , 1,1,0,0, 0,1,0,0, 0,0,1,0, 1,1,1,0, 0,0,0,0,

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

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