【毕业学位论文】(Word原稿)JSP,JAVA俄罗斯方块论文范文_第1页
【毕业学位论文】(Word原稿)JSP,JAVA俄罗斯方块论文范文_第2页
【毕业学位论文】(Word原稿)JSP,JAVA俄罗斯方块论文范文_第3页
【毕业学位论文】(Word原稿)JSP,JAVA俄罗斯方块论文范文_第4页
【毕业学位论文】(Word原稿)JSP,JAVA俄罗斯方块论文范文_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 绪论 戏的历史 游戏开发至今已经有 30 多年 ,在这个短暂的时期里 ,随着硬件水平的提高 ,游戏开发新技术层出不穷 ,经典游戏比比皆是。 头谈起 真正的电子游戏 机产生于 20 世纪 70 年代。 1971 年,麻省理工学院的学生名街机),叫做电脑空间。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。 上面介绍的是专用机游戏的历史,而最 早的电脑游戏可以追溯到 1972 年,一个叫 工程师用当时最流行的主机 司的 10 编写一段简单的 序。在这个程序里, 计了一张地图,地图上不规则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被公认为是最早的电脑游戏程序。 1989年, 司的设计师乔丹 千零一夜在 台上制作了一部动作冒险相结合的电脑游戏波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。 1986年, 任天堂公司发售了一款真正的游戏巨作超级马里奥。 20世纪 80年代 到了 20世纪 90 年代,游戏业才真正成熟起来,成为了一种产业。 由于 价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏产业也逐渐发展成熟。 形硬件的革命 图形硬件的飞速发展是近些年来的事情,部分原因是来自工业方面的压力,例如在军事和医疗方面对于实时图形的需求很强烈,而交互娱乐产业也极大的推动了图形硬件的发展。技术上的因素同样也推动着图形硬 件的发展,许多图形算法可以很容易地表达为并行方式,这样硬件执行的效率变得很高。摩乐定律也起了作用,越来越多的晶体管可以集成到一块单独的芯片上。 在所谓的 形处理器)概念出现以前,特殊的图形硬件只出现在诸如&些硬件价格太昂贵,不过这些公司提供了第一代基于硬件的顶点变换和纹理映射的解决方案。 戏的意义与内涵 游戏这个名称一直就存在于每个人的日常生活中 ,如猜拳游戏、猜谜游戏、大地游戏、球类游戏等 ,林林总总 ,不胜枚举 ,甚至于有些流行歌曲把人生也比喻为游戏 ,好比“一场游戏一场 梦” 。因此 ,游戏对于现代人的成长历程 ,绝对是一个不可或缺的重要角色。 戏的组成要素 “ 游戏 ” ,最简单的定义 ,就是一种供人们娱乐休闲的快乐元素。从更专业的角度形容 , “ 游戏 ” 是具有特定行为模式、规则条件、身心娱乐及输赢的一种行为表现。这种行为表现具备以下 4个要素。 行为模式 : “ 游戏 ” 最简单的要素就是游戏有特定的流程模式 ,这种流程模式贯穿于整个游戏的行为 ,用户必须依照它的模式流程来执行。倘若一种游戏没有了特定的行为模式 ,那么就没有执行的行为;在没有执行的行为之后 ,这个游戏也玩不下去了。举 个例子来说 ,如果猜拳游戏没有了剪刀、石头、布等行为模式 ,那么这还能叫做“猜拳游戏” 吗 ?所以不管游戏的流程有多么复杂还是多么简单 ,一定要有特定的行为模式。 条件规则 :当游戏有了一定的行为模式后 ,接着就必须制定出一系列的条件规则。简单来说 ,这些游戏的条件规则就是大家必须去遵守的游戏行为守则 ,只要是大家一致以为的游戏行为 ,在游戏中 ,玩家就必须遵守它 ,如果不遵守这种游戏行为 ,那么就失去了公平性。如同一种简单的球赛 ,打球的英文解释可以用 加以说明 ,按照英文字面上的解释 ,它就是执行游戏的行为 ,而球赛 必须有一定的条件规则 ,并且参与者都要必须去遵守它 ,不能遵守它就叫作 “ 犯规 ” 。所以不管是什么游戏 ,它都会具备一组规则条件 ,在游戏进行的时候才会有足够的公平性。 娱乐身心 :一种游戏所带来的娱乐性 ,关键就在于为玩家所带来的刺激感 ,这也是游戏的精华所在。简单来说 ,不管是很多人玩的游戏 ,还是一个人玩的单机游戏 ,游戏本身就会存在它的娱乐和刺激性 ,使得玩家们想要去玩它。 输赢 :其实针对游戏而言 ,输赢是所有游戏的最终目的。一个没有输赢的游戏,也就没有了它存在的意义,如同我们常常接触到的猜拳游戏,说穿了最终目的就是为了分出胜 负而己。 一般而言,游戏又可以分为动态和静态两种形态。动态的游戏必须配合肢体动作,如猜拳游戏;而静态游戏则是较偏向思考的行为,如同纸上游戏。然而不管是动态或是静态游戏,只要具备上述 4项组成要素,都可以将它称为“游戏”。 第 二 章 可行性研究 计目的 综合运用在校期间所学理论知识和技能,设计开发俄罗斯方块,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来实际工作打下坚实的基础。 行性研究前提 基本需求 :系 统开发的总体任务是实现游戏的可操作性、美观性、及时性。 开发过程遵循软件工程规范,可采用结构化或面向对象分析设计方法 。主要实现 序开发,对游戏中的图形图像进行键盘控制。 游戏者可以通过上下左右键来对游戏进行操作。 主要开发目标 :采用结构化设计方法, 开发出一 个可操作性、美观性、及时性的游戏,实现 序开发 ,并通过此次软件开发过程全面提高自身的综合素质。 条件假定和限制 :由于本软件 目前是我的初次版本, 可能还存在一些问题。如果该软件提高版本,本软件需要 根据游戏者的要求进行进 一步的修改。 可行性研究所采用的方法和步骤 :通过 研究 分析 俄罗斯方块 所具备的能力及实现的方法、确定主体结构。利用现阶段 我 所能达到的能力,以最简洁、最容易的办法,边开发边测试 边修改 ,实现一个初级 游戏 软件。 评价尺度 :由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到俄罗斯游戏的一般功能即可。 行性分析 管理可行性 : 该游戏软件为首次开发,目的只为提高工作自身素质和检查自学 效果,用 件编写后在 理器中运行简单明了,所有功能均根据基本需求所做。便于管理,所以 在这方面是可以实现的。 经济可行性 :由于本游戏的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行 以不用考虑到经济问题。 技术可行性 :可用与本游戏的编程语言有 虑到用于编写程序的困难度,和对语言的了解程度,选择 为编程语言。需要对变量定义、变量初始化、界面初始化、游戏初始化、然后进入游戏、处理游戏过程中的各种操作。 社会可行性 :本游戏的开发作为毕业课程设计 以巩固先前所学的知识,以个人为单位,仅供个人平常娱乐所用,无须考虑有可能造成的社会影响,不用考虑到法律、版权等的社会因素,所以在这方面是完全可行的。 论意见 综上所述,本 游戏软件 的技术成熟、完备 。各方面均无重大问题, 因此本 游戏软件 可开始 着手编写 。 第三章 需求分析 言 对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员 、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。 戏需求 随机给出不同的形状(长条形、 字形、 7字形、反 7形、落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置三关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下: 游戏界面需求 :良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形 ,该区域用一种颜色表明 ,既 用一种颜色作为背景 ,最好设为黑色。还需用另一种颜色把黑色围起来 ,宽度适中,要实现美感。 游戏形状 (方块 )需求 :良好的方块形状设计,绘制七种常见的基本图形(长条形、 字形、 7字形、反 7 形、 各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。 键盘处理事件 :方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上 (变形 ),向下(加速)、向左、向右移动。 显示需求 :当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。设置三关,每关方块 下落的速度不同。 硬件需求 操作系统 000/003 内存容量 64卡要求 8M 声卡要求 支持 效卡 交互工具 键盘 /鼠标 腾 133以上 光驱 8倍速以上 硬盘空间 400示器 开发软件 口控制 本软件需求通过键盘进行操作,在 用键盘的上、下、左、右键对方块进行移动变形,要使用键盘的接口事件。 案论证 学校现已开设的课程有 C+,自己本身自学了 目前了解,可用 +编写俄罗斯方块程序。 句生成器和快速提示帮助使用户不必记忆成千上万的属性和方法,在较短的时间内就能开发出功能强大的应用程序。持动态 类繁多,功能强大的多媒体控件,能帮助用户在较短的时间内用较少的语句编写出图文声像并茂的多媒体程序。能对多种数据库进行读写操作 。它所提供的可视化数据管理器能帮助用户构造多种类型的数据库。用户自定义类型可以作为参数或作为公共属性和方法的返回值,函数可以返回数组变量,动态数组可以赋值,文件系统对象,按名调用,增强创建对象函数和 用程序安装向导能帮助用户自动生成具有一定功能的应用程序,加快了程序的开发速度。 +的优点 C+是对 C 语言的扩充,扩充的绝大部分来自著名语言中的最佳特性:从7 中吸取了类,从 8 中吸取了运算符一名多用、引用和在分程序中任何地方说明变量,综合了 类属和 模块特点,从 吸取异常处理,从 。 C+保持了 C 的紧凑、灵活、高效和易移植强的优点,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的支持主要通过虚拟函数。 C+既有数据抽象和面向对象能力,语言运行性能高多,加上 从 +的过渡较为平滑,以及 C+与 程序能方便地在 C+环境中重用。 尽管 C+当初的设计本意是帮助管理大型程序,但其用途并不仅限于此。 C+的面向对象的特性可有效地用于实际的程序设计工作。 C+常常用于设计编辑器、数据库、个人文件系统以及通讯程序等。而且,由于 C+共享 以用 C+可以构成很多高性能的系统软件。 几乎所有的特点也是围绕着这一中心展开的并为之服务的,这些特点使得 外,作为一种面世较晚的语言, 面向对象、多线程等,这些也都在它的特点中有所反映。 台无关性 如前所述, 运行机制使得它具有良好的二进制级的可移植性,利用 发人员可以编写出与具体平台无关、普遍适用的应用程序,大大降低了开发、维护和管理的开销。 向对象 向对象技术较好地适应了当今软件开发过程 中新出现的种种传统面向过程语言所不能处理的问题,包括软件开发的规模扩大、升级加快、维护量增大经及开发分工日趋细化、专业化和标准化等,是一种迅速成熟、推广的软件开发方法。面向对象技术的核心是以更接近人类思维的方式建立计算机逻辑模型,它利用类和对象的机制将数据与其上 的操作封装在一起,并通过统一的接口与外界交互,使反映现实世界实体的各个类在程序中能够独立、自治、继承;这种方法非常有利于提高程序的可维护性和可重用性,大大提高了开发效率和程序的可管理性,使得面向过程语言难于操纵的大规模软件可以很方便的创建、使用和维护。 全稳定 对网络上应用程序的另一个需求是较高的安全可靠性。用户通过网络获取并 在本地运行的应用程序必须是可依赖的,不会充当病毒或其他恶意操作的传播者而攻击用户本地的资源;同时它还应该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。 持 多线程 多线程是当今软件技术的又一重要成果,已成功应用在操作系统、应用开发 等多个领域。多程序技术允许同一个程序有两个执行线索,即同时做两件事情,满足了一些复杂软件的需求。 且提供语言级的多线程支持,即定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。 单易学 如前所述,衍生自 C+的 于安全稳定性的考虑,去除了 C+中 不容不得易理解和掌握的部分,如最典型的指针操作等,降低了学习的难度;同时 基本语法部分与 样,无论是学过 ,还是已经掌握了 都会感到易于入门。 面向对象是一种认识世界的方法,是一种程序设计方法。面向对象的观点认为,客观世界是由各种各样的实体,即对象组成的。每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成了各种不同的系统,并进而构成整个客观世界。按照这样的思想设计程序,就是面向对象的程序设计。 面向对象的程序设计吸取了结构化程序设计的先进思想,并把它们同几个支持用户用新方法进行程序 设计的有力概念结合在一起。 所有面向对象的程序设计语言一般都包含三个概念:封装、多态性和继承性。 这种方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。 面向对象的程序设计,是通过数据和代码建立分块的内存区域,以便提供对程序进行模块化的一种程序设计方法,这些模块可以被用作样板,在需要时再建立其副本。 C+和 以我排除了用 是 C+为了与 是包含了些面向过程的成分; +中非面向过程的部分,其程序编写过程就是设计、实现类, 定义其属性、行为的过程。还有 箱”机制是其安全性的保障,同时它去除了 C+中易造成的错误指针,增加了自动内存管理等措施,保证了 所以经过再三比较了三种语言后,决定采用 第四章 概要设计 戏设计分析 纯面向对象( 程序语言,它的诸多优点在此就不作论述了。从面向对象的观念出发,本程序可分为以下几个对象: 方块类型数据 程序运算逻辑 绘图 显示平台 分析对象的技巧在于它的重复 利用及维护效率。试想,若要把设计出来的程序在不同的显示平台上执行,就要作大幅度的更动甚至重写,这样就失去了面向对象属性,所以在本程序分析时将不变与易变的因素分别做成对象,如方块类型数据及程序运算逻辑就是不变的项目,而绘图及显示平台会因为环境而有所不同属于易变的项目。 方块类型虽然运送不同,但状态与行为都是相同的,如下表所示。 方块的状态与行为 对 象 要 素 说 明 状态 记录方块形状的变量 行为 方块根据 x=y;y=2转 程序中逻辑运算通常只作数值的运算及分析,如方块移动时阻碍判断、方块满行判断、删除满行、方块移动、定时器、事件响应等。 绘图会因为显示平的不同而有所不同,例如在单机与手机上的显示环境就不相同,或显示效果会有所不同,例如方块的样式作修正时,即可以产生出不同的显示效果。 “可移植性高”是 属性之一, 应用涉及许多领域,如手机、单机程序及浏览器等,不同的平台对于它的设定不尽相同,若将显示平台独立为一个类,将有助于主程序的完整性及移植程序的快速性。 意事项 游戏在设计时除了将程序切割成多个对象外,在游戏的逻辑运算上应尽可能做到弹性化。所谓弹性就是方块地图的长与宽应该可以用参数来改变。 戏流程图 顶层图 图 1 按 S 键 关 开 1. 游戏开始 控制游戏开关 2. 键盘控制台 循环运行 程 序 运 行 否 是 否 是 否 是 游戏开始 接受按钮的控制信息 1. 检查满行 2. 删除满行 3. 重新装载方块 产生控制方块下降的执行信息 移动方块 显示方块于屏幕中 ,检查方块在屏幕上是否有阻碍发生 方块移动时是否有阻碍 方块是否无法下移 游戏结束 图 2 无效 有效 按键 保持不动 可动 查按键 查可移动性 第五章 详细设计 体设计 程序流程图 序号 方法名 作用 1 定义窗口 2 创建变量 3 打开线程 4 游戏界面初始化和游戏开始开关 5 控制游戏速度 6 游戏变量初始化 7 装载图形 过关 游戏结束 重新游戏 下一个图行 达到提定位置 达到提定位置 显示屏幕信息 按向上键 游戏开始 否 按 s 键游戏开始 按键 M a 8 保存上一个图形的坐标 9 屏幕显示 10 处理到达后的图形,进行加分, 满行判断及消行处理等 11 控制按键信息 12 控制图形变化 13 游戏结束 幕信息初始化( ) 游戏开关控制图(在 内实现) 方法 是绘制游戏地图的方法,先指明是什么颜色,再定义颜色范围,本游戏是先用红色画了一个大的实心矩形框,再在红色中画一个比红色小一点的黑色实心矩形框,这样黑色的框便会把原来红色的部分遮掉,让人看起来就是黑色的框周围围了一圈红色。黑色矩形 框为后面的游戏方块活动的范围。该方法中还设置了一把锁,是游戏是否开始的锁,如果还没开始则会在黑色框中提示游戏开始的方法。如果游戏锁解开,会调用 方法。 方法还可在前面加 ,该方法可以将整个屏幕清屏,再重新画一个游戏界面。 也由于如此,如果在方块向下运动中,每运动一行都要掉用一次 方法的话,屏幕便会闪烁的很快,这样就游戏的可观性来说很不好。所以我另外定义了一个 制作图形变量 (这个变量只要被激活 ( ),就可以拥有绘图的所有功能 。 同时也定义了另外一个绘图的方法 (),这样就 减少重新绘图而造成的屏幕闪烁问题。 有关 方法的使用,将在后面的显示控制中提到。 方法 是游戏初始化,用双重循环把定义游戏地图的二维数组赋为 清空游戏地图中的所有方块。也把每行方块数初始化,分数初始化,打开游戏地图清屏 开关, 再调用装载游戏方块 方法。 调用 开启游戏,是变量初始化,也是游戏的入口 判 断 是 否按下 S 键 显示开启游戏的方法 块的装载 () 方块装载( 方法 ) 定义一个随机变量 ,然后调用随机函数( *7)+1), 所取得的随机数在 1 到 7之间,用这 7个数字 表示 7中常见的方块,并从 7种方块中随机抽取 图形。 每一 种方块都是由两个一维数组 (x, y)表示的,其中一个用来保存方 块所在行,另一个数组用来保存方块所在列,这样有利于方块在屏幕上准确而有活动的定位。 所有 7 种图形都是在三行三列的地图中研究后给出的坐标,给出的坐标也是方块在游戏地图中靠最顶行 的坐标。这就好象方块存在于一个三行三列大小的图形中而够成的一张图片。图片的运动也就是方块的运动,这样,要实现方块的变形,就要在三行三列的图形中定义一个最左上角的基点,方块运动,基点也跟着运动。基点坐标在加载方块是加载,基点的存储空间在加载每个方块数组的最后定义。这样使得方块在游戏地图中的每一个地方都可以变形。也不会因为变形而方块在游戏地图中的变动很厉害,出现瞬移的现象。图形坐标装载完后,先判断在方块的下一行是否已有方块,如果有则说明方块以到达游戏地图的顶端,游戏将结束。没有则先把方块坐标保存,这是为了在方块 向下移动的时候在它的后面不会有虚假的方块,因为方块向下运动,记录的是新一行的方块坐标,但旧一行的没有消掉,所以要先旧方块的坐标保存起来,搽掉旧方块再显示方块。这样也会减少屏幕的闪烁问题。 是 否 7 6 5 4 3 2 1 随机抽取一个数 随机数 一字形 Z 字形 反 Z 形 7 字形 反 7 形 倒 田字型 游戏是否结束 保存当前方块坐标 显示方块于屏幕上 游戏结束 调用 关数初始化 返回开始界面 理键盘事件 键盘事件功能图( ) 是处理按键的事件,刚开始运行程序时,游戏还没有开始,这时除 键盘锁的键)是有用外,其他的键都给锁住,这样可以避免键盘过早的控制游 戏。在判断是否在 个语句同时成立时,才会解开游戏锁,程序开始时,游戏还没有开始,游戏锁是关的,但是取反后它就是真的,所以只要按下 个语句都成立。这样做是为了在游戏开始时再按下 S 键,游戏不会重新开始,即游戏开始后, 左 右 下 是 否 判断是否是 按键 等待 开启游戏开关 判断按键 图形变化 调用方法 1. 判断可移动性 2. 可以则移动 调用 将发生变化后的方块显示在屏幕上 用 保存原有坐标 键就没有用了。按下 戏锁才被解开,键盘也被解开。每当有按键,也就是方块要产生变化时,先保存方块的坐标,便于清理旧方块,显示新方块。当方块要进行上(变形)、下、左、右变化时,先对方块将要移动到的位置进行判断,判断是否有障碍,有则保持 原来的位置不变,没有则 根据所按 的 键执行相关的操作 。再把方块的位置显示在屏幕上。方块的移动其实也只是对行或列坐标的增减而己。 例 向左键的障碍物判断及处理: i=0;,使 屏幕方块向下移动 i=0;i12;i+) ij=i j= 示控制 是 否 清除屏幕所有方块、成绩和关数, 全部重新绘置,使得消行视觉化 判断是否消行 清除旧图形(方块在屏幕上前一点的位置) 绘制新图形 方块组成:小方块是由三个不同 颜色的正方形方框组成 ,其中正方形有实心 的也有空心的 ,这样使得方块变得好看点能看出堆积的视觉效果 示控制时 先看之前是否发生过消行事件,如果发生了清除屏幕所有方块、成绩和关数,全部重新绘置,使得消行视觉化。然后再清除旧图形,绘制新图形。其实消除屏幕只是将屏幕重新画一次而己,清除成绩和关数,也只是在有显示成绩和关数的地方画一个白色的框而己。重新绘置新点,就是从下向上判断看哪些地方有方块的就得新画一个小方块,没有的不画。 存方块坐标( ) 方 法 将活动方块的之前坐标保存,在方块移动后,它就起到清除 旧图形的重要作用,就是如些使显示界面不用不断的刷新,然后再去绘制新图,这样可以使得屏幕不会变得太闪烁。 理游戏结束 来处理游戏结束, 关闭游戏开关 关数初始化 返回到开始界面 调用 使屏幕初始化 第 六 章 体会 在做毕业设计以前,我对 戏开发只是停留在理论知识的水平上,是“纸上谈兵”,缺乏实际的软件开发经验。这次通过做毕业设计,我 完成了俄罗斯游戏的 软件开发任务。在整个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论