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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(过程蓝图文档.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

过程蓝图文档.doc

1、项目综合实验报告 课程名称 算法与程序设计实践 程序名称 _ 俄罗斯方块 _实验工具 _JBTooL_编程语言 _JAVA_专 业 : 软件工程 班级/学号: 软工1202/ 学生姓名: rouforever 成 绩 _指导教师 _ _完成日期 _程序设计说明书1引言1.1编写目的游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳1.2项目背景之所以选择开发俄罗斯方块游戏,无可争议,俄罗斯方块是有史以来最伟大的游戏之一。 在曾经发布过的所有游戏中,俄罗斯方块还被认为是仅有的一个能够真正吸引广泛人群的作品。1.3定义我们在设计过程中主要用到的控件有:command控件,

2、image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。 1.4参考资料无1.5人员及分工一人完成2总体设计2.1需求概述在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。2.2程序结构俄罗斯方块游戏游戏区游戏控制显示玩家操作显示操作结

3、果开始暂停/继续提高等级退出降低等级2.3 程序功能游戏控制模块开始游戏暂停游戏初始级别设置退出游戏3程序描述游戏中玩家可以做的操作有: 1.以90度为单位旋转方每一格块。2.以格子为单位左右移动方块,让方块加速落下。3.方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的随机图形会出现在区域上方开始落下。4.当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得分。同时删除的列数越多,得分指数上升。5.当固定的方块堆到区域最上方,则游戏结束。3.1功能 暂停,开始游戏,提高降低级数。3.3输入项目主要实现的功能 我们开发的俄罗斯方块游戏,主要实现了以下几种功

4、能: 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 同时消除的行数-1) 这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动

5、升级,这个升级指速度升级。 6.游戏中提供了一个漂亮的场景和动听的音乐,给你带来无限激情。 3.5算法是俄罗斯方块的关键矩阵。其中,第一维的18,前 16 个整数表示 4*4 的方块的形状,后两个变量,表示该形状所占的宽度和高度,以免方块出界了。第二维中的 4 表示方块的 4 个方向的旋转。第三维中的 7 表示方块的 7 中基本形状。所有情况的方块写到一数组里,作为一常量,以备调用。例如:for(i=0;i4;i+) gridheighti+colum+=shapeshploopi; for(i=4;i8;i+) gridheight+1i+colum-4+=shapeshploopi; fo

6、r(i=8;i12;i+) gridheight+2i+colum-8+=shapeshploopi; for(i=12;i16;i+) gridheight+3i+colum-12+=shapeshploopi;其中,grid,就是整个画面的情况,用 0 和 1 表示,1表示有格子,0表示没有格子,上述的程序段表示,在第 height 行 colum 列显示 shape 形状的方块。方块的变形就是改变第一维的值了,方块的旋转就是改变第而维的值了。【采用过程蓝图的ACSD/ALSD/AISD详细描述各个模块在概念、逻辑和实现三个不同抽象层次的算法过程模型】项目开发总结报告1引言1.1编写目的说

7、明编写这份项目开发总结报告的目的,指出预期的阅读范围。1.2背景说明:a 本项目的名称和所开发出来的软件系统的名称;b 此软件的来源或任务提出者、开发者、用户及安装此软件的计算中心。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出收集和用到的参考资料,如:a 程序代码及文档的来源及出处;b 为完成本项目所收集和自学的资料;c 本文件中各处所引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2实际开发结果2.1产品说明最终制成的产品,包括:a 程序系统中各个程序的名字,它们之间的层

8、次关系,以千字节为单位的各个程序的程序量、存储媒体的形式和数量;b 程序系统共有哪几个版本,各自的版本号及它们之间的区别;c 每个文件的名称;d 所建立的每个数据库。 如果开发中制订过配置管理计划,要同这个计划相比较。2.2主要功能和性能逐项列出本软件产品所实际具有的主要功能和性能,对照可行性研究报告、项目开发计划、功能需求说明书的有关内容,说明原定的开发目标是达到了、未完全达到、或超过了。2.3基本流程用图给出本程序系统实际的基本处理流程。2.4研制过程与进度详细描述开发程序的完整过程,包括开发的各个阶段、制品、活动,并画出开发流程图;列出原定计划进度与实际进度的对比,明确说明,实际进度是提

9、前了、还是延迟了,分析主要原因。2.5费用列出原定计划费用与实际支出费用的对比,包括:a. 工时,以人月为单位,并按不同级别统计;b. 计算机的使用时间,区别CPU时间及其他设备时间;c. 物料消耗、出差费等其他支出。明确说明,经费是超出了、还是节余了,分析其主要原因。3开发工作评价3.1对生产效率的评价给出实际生产效率,包括:a 程序的平均生产效率,即每人月生产的行数;b 文件的平均生产效率,即每人月生产的千字数;并列出原订计划数作为对比。3.2对产品质量的评价说明在测试中检查出来的程序编制中的错误发生率,即每干条指令(或语句)中的错误指令数(或语句数)。如果开发中制订过质量保证计划或配置管

10、理计划,要同这些计划相比较。3.3对技术方法的评价重点给出对在开发中所使用的模型驱动程序技术、方法、工具的效果评价。3.4 对主动学习的评价给出为完成项目开展主动学习的内容、主动学习方法及学习效果评价。3.5 对团队合作的评价 给出为完成项目是如何开展团队合作的,合作时出现了什么问题,如何解决这些问题,以及采用的高效团队协作的做法、成功经验和效果评价。3.6 碰到的问题、解决方法及建议给出对于开发中出现的各种主要问题、原因分析及其解决方法。请重点给出使用蓝图工具时碰到些什么问题、解决问题的做法,以及工具完善改进的建议。4收获与体会列出从这项开发工作中所得到的最主要的收获和体会实现层包 Bloc

11、k;/ 类定义 类 MyTimer / 成员方法 公共的 MyTimer(Block myBlock) 调用对象.myBlock 赋值 myBlock; / 成员方法 公共的 空类型 运行() 当 (myBlock.启动Sign 等于 1) 尝试 /e sleep(10减myBlock.speedMark 加 1)乘100); myBlock.重复wn(); 捕获 (Interrupted异常 e) 系统.输出.输出字符串并换行(); / 类定义公共的 类 moxing / 成员变量 公共的 静态的 整数类型 blockNumber = 1 ; 公共的 静态的 字符串 butLab = 开 始

12、 游 戏,重 新 开 始,降 低 级 数,提 高 级 数,游 戏 暂 停,退 出 游 戏 ; 公共的 静态的 Button but = 新建对象 按钮6 ; 公共的 静态的 Button noStop = 新建对象 按钮(取 消 暂 停) ; 公共的 静态的 布尔类型 downSign = 假 ; 公共的 静态的 整数类型 game_body = 新建对象 整数类型1910 ; 公共的 静态的 整数类型 game_sign_x = 新建对象 整数类型4 ; 公共的 静态的 整数类型 game_sign_y = 新建对象 整数类型4 ; 公共的 静态的 整数类型 gameScore = 0 ;

13、公共的 静态的 ImageIcon icon = 新建对象 图像Icon(resource/Block.jpg) ; 公共的 静态的 JDialog dlg_1 ; 公共的 静态的 JFrame jf = 新建对象 嘉窗口() ; 公共的 静态的 JMenu menu0 = 新建对象 J菜单(游戏 ) ; 公共的 静态的 JMenu menu1 = 新建对象 J菜单(帮助 ) ; 公共的 静态的 JMenuBar mb = 新建对象 J菜单栏() ; 公共的 静态的 JMenuItem mi0 = 新建对象 J菜单项(新 游 戏) ; 公共的 静态的 JMenuItem mi1 = 新建对象

14、J菜单项(退出) ; 公共的 静态的 JMenuItem mi1_0 = 新建对象 J菜单项(关于) ; 公共的 静态的 JTextArea dlg_1_text = 新建对象 JTextArea() ; 公共的 静态的 Label infoLab = 新建对象 Label(提示:) ; 公共的 静态的 Label infoTex = 新建对象 Label( ) ; 公共的 静态的 Label scoreLab = 新建对象 Label(分数:) ; 公共的 静态的 Label scoreTex = 新建对象 Label(0) ; 公共的 静态的 Label speedLab = 新建对象 L

15、abel(级数:) ; 公共的 静态的 Label speedTex = 新建对象 Label(1) ; 公共的 静态的 MyTimer timer ; 公共的 静态的 整数类型 speedMark = 1 ; 公共的 静态的 整数类型 startSign = 0 ; / 成员方法 公共的 空类型 执行的动作(动作事件 e) 如果(e.获取来源() 等于 but0) 启动Sign 赋值 1; infoTex.设置文本(游戏已经开始!); but0.设置可用性(假); but1.设置可用性(真); but4.设置可用性(真); timer.resume(); 如果(e.获取来源() 等于 but

16、1或e.获取来源() 等于 mi0) 启动Sign 赋值 0; gameScore 赋值 0; timer.suspend(); num_csh_re启动(); re绘制(); rand_block(); scoreTex.设置文本(0); infoTex.设置文本(新游戏!); but0.设置可用性(真); but1.设置可用性(假); but4.设置可用性(假); 如果(e.获取来源() 等于 but2) infoTex.设置文本(降低级数!); speedMark减减; 如果(speedMark 小于等于 1) speedMark 赋值 1; infoTex.设置文本(已经是最低级数!)

17、; speedTex.设置文本(speedMark 加 ); 如果(e.获取来源() 等于 but3) infoTex.设置文本(提高级数!); speedMark加加; 如果(speedMark 大于等于 9) speedMark 赋值 9; infoTex.设置文本(已经是最高级数!); speedTex.设置文本(speedMark 加 ); 如果(e.获取来源() 等于 but4) 调用对象.add(noStop); 调用对象.remove(but4); infoTex.设置文本(游戏暂停!); timer.suspend(); 如果(e.获取来源() 等于 noStop) 调用对象.

18、remove(noStop); 调用对象.add(but4); infoTex.设置文本(继续游戏!); timer.resume(); 如果(e.获取来源() 等于 but5或e.获取来源() 等于 mi1) jf.dispose(); 如果(e.获取来源() 等于 mi1_0) dlg_1 赋值 新建对象 JDialog(jf,关 于); 尝试 /a 文件输入流 io 赋值 新建对象 文件输入流(resource/guanyu.txt); 字节类型 a 赋值 新建对象 字节类型io.available(); io.读(a); io.关闭(); 字符串 str 赋值 新建对象 字符串(a);

19、 dlg_1_text.设置文本(str); 捕获 (异常 g) dlg_1_text.设置可编辑性(假); dlg_1.add(dlg_1_text); dlg_1.pack(); dlg_1.设置可变大小(假); dlg_1.设置大小(200, 120); dlg_1.设置位置(400, 240); dlg_1.show(); / 成员方法 公共的 空类型 block1() game_body04 赋值 1; game_body14 赋值 1; game_body24 赋值 1; game_body34 赋值 1; / 成员方法 公共的 空类型 block2() game_body34 赋

20、值 1; game_body24 赋值 1; game_body35 赋值 1; game_body25 赋值 1; / 成员方法 公共的 空类型 block3() game_body14 赋值 1; game_body24 赋值 1; game_body34 赋值 1; game_body35 赋值 1; / 成员方法 公共的 空类型 block4() game_body14 赋值 1; game_body24 赋值 1; game_body34 赋值 1; game_body25 赋值 1; / 成员方法 公共的 空类型 block5() game_body14 赋值 1; game_bo

21、dy24 赋值 1; game_body34 赋值 1; game_body15 赋值 1; / 成员方法 公共的 空类型 block6() game_body15 赋值 1; game_body25 赋值 1; game_body24 赋值 1; game_body34 赋值 1; / 成员方法 公共的 空类型 block7() game_body14 赋值 1; game_body24 赋值 1; game_body25 赋值 1; game_body35 赋值 1; / 成员方法 公共的 空类型 cancelDW() 对于 (整数类型 k 赋值 0;k 小于 4;k加加) game_si

22、gn_xk 赋值 0; game_sign_yk 赋值 0; / 成员方法 公共的 Void change_body(整数类型 blockNumber) dingwei(); 如果(blockNumber 等于 1与重复wnSign 等于 假) 如果(game_sign_y0 等于 game_sign_y1与game_sign_y3 小于等于 16) 如果(game_bodygame_sign_y0 减 1game_sign_x0 加 1 不等于 2与game_bodygame_sign_y3 加 2game_sign_x3 减 2 不等于 2) num_csh_game(); game_bo

23、dygame_sign_y0 减 1game_sign_x0 加 1 赋值 1; game_bodygame_sign_y1game_sign_x1 赋值 1; game_bodygame_sign_y2 加 1game_sign_x2 减 1 赋值 1; game_bodygame_sign_y3 加 2game_sign_x3 减 2 赋值 1; infoTex.设置文本(游戏进行中!); re绘制(); 如果(game_sign_x0 等于 game_sign_x1与game_sign_x0 大于等于 1与game_sign_x3 小于等于 7) 如果(game_bodygame_sign_y0 加 1game_sign_x0减1 不等于 2与game_bodygame_sign_y3 减 2game_sign_x3 加 2 不等于 2) num_csh_game(); game_bodygame_sign_y0 加 1game_sign_x0 减 1 赋值 1; game_bodygame_sign_y1game

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2