Java-扫雷游戏-课程设计
JAVA课程设计扫雷含代码

0
随机生成:使用随 机数生成器生成地 图
地图大小:根据游 戏难度设置地图大 小
地雷分布:在地图 上随机分布地雷
标记地雷:在地图 上标记地雷位置, 方便玩家识别
雷区标记逻辑
初始化:创建雷区数组,设置初始状态 标记雷区:当玩家点击雷区时,标记为雷区 更新雷区:当玩家点击非雷区时,更新雷区状态 判断胜负:当所有非雷区都被标记时,游戏结束,判断胜负
游戏结束:当所有非雷方格都被点击,或者玩家踩到雷时,游戏结束
游戏界面设计
游戏界面分为两个部分:游戏区和菜单区 游戏区显示游戏地图和地雷位置 菜单区包括开始游戏、暂停游戏、重新开始、退出游戏等按钮 游戏界面采用简洁明了的设计风格,易于玩家操作和理解
游戏流程控制
初始化游戏:创建游戏界面,设置游戏参数 玩家输入:接收玩家输入的坐标,判断是否合法 游戏逻辑:根据玩家输入,更新游戏状态,判断是否触发雷 游戏结束:判断游戏是否结束,显示游戏结果 重新开始:提供重新开始游戏的选项,重新开始游戏流程
05
JAVA扫雷游戏代码实 现
游戏主程序代码实现
初始化游戏界面 生成随机雷区 玩家点击操作 判断输赢条件 游戏结束处理
游戏地图类代码实现
初始化地图,设置地雷位置 和状态
创建游戏地图类,定义地图 大小和地雷数量
实现地图显示,绘制地雷和 空白区域
实现地图更新,根据玩家操 作更新地雷状态和显示
游戏雷区类代码实现
感谢您的观看
汇报人:
兼容性:测试游戏在不同操作系统 和硬件配置下的兼容性
添加标题
添加标题
添加标题
添加标题
稳定性:测试游戏在长时间运行下 的稳定性
用户体验:测试游戏的易用性和用 户体验
(完整word版)JAVA课程设计--扫雷游戏

合肥学院计算机科学与技术系课程设计报告2009~2010学年第二学期课程Java语言与应用课程设计名称扫雷游戏学生姓名胡远远学号0604031005专业班级07网络工程一班指导教师许强张贯虹2010年09月1.设计内容及要求1.1 扫雷游戏的基本要求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。
具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。
(2)用户要揭开某个方块,可单击它。
若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(4)扫雷胜利后,显示游戏胜利。
(5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。
1.2 需实现的主要功能(1)用户点击笑脸实现复位操作。
调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。
文本框TF记录扫雷成功所花的时间(3)在失败和胜利后跳出失败或胜利的文本框JoptionPane 该类用来调出对话框并提示胜利2.需求分析2.1 扫雷棋盘的布局设计系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。
2.2 雷区的设计MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。
简单扫雷java课程设计框图

简单扫雷java课程设计框图一、课程目标知识目标:1. 学生能理解Java基础语法,掌握面向对象编程的基本概念。
2. 学生能掌握简单扫雷游戏的逻辑设计,包括二维数组的使用、随机数的生成。
3. 学生能运用Java编程实现简单扫雷游戏的界面布局与功能。
技能目标:1. 学生能够运用所学知识,独立设计并编写简单扫雷游戏的框图和代码。
2. 学生能够运用调试工具,找出并修正编程过程中的错误。
3. 学生能够通过小组合作,培养团队协作能力和沟通能力。
情感态度价值观目标:1. 学生通过学习Java编程,培养解决问题的能力和创新思维。
2. 学生在游戏编程过程中,体验编程的乐趣,激发对计算机科学的兴趣。
3. 学生在团队合作中,学会尊重他人意见,培养良好的团队精神和沟通能力。
本课程针对初中年级学生,结合学科特点,注重培养学生的编程兴趣和实际操作能力。
课程以Java编程语言为基础,通过设计简单扫雷游戏,让学生在实践过程中掌握编程知识和技巧。
课程目标明确,可衡量,旨在帮助学生将所学知识应用于实际项目中,提高学生的编程能力和团队协作能力。
二、教学内容1. Java基础语法复习:变量、数据类型、运算符、控制结构(条件语句、循环语句)。
2. 面向对象编程基础:类与对象、构造方法、属性、方法。
3. 二维数组:定义、初始化、遍历、访问。
4. 随机数生成:Random类、Math类。
5. 简单扫雷游戏逻辑设计:游戏规则、雷区生成、扫雷功能、标记功能。
6. 界面布局与设计:使用Java Swing库,掌握JFrame、JButton、JLabel等组件的使用。
7. 事件处理:鼠标点击事件、键盘事件。
8. 游戏功能实现:编写代码实现游戏逻辑、界面交互、胜利条件判断。
教学内容根据课程目标进行选择和组织,以课本为依据,结合学生实际水平,确保科学性和系统性。
教学大纲明确教学内容安排和进度,分为八个部分,循序渐进地引导学生学习。
教学内容涵盖Java编程基础、面向对象编程、数组、随机数生成等,以及简单扫雷游戏的设计与实现,旨在帮助学生将所学知识应用于实际项目中,提高编程技能。
java扫雷课程设计

java 扫雷 课程设计一、课程目标知识目标:1. 理解并掌握Java基本语法和程序结构;2. 学会使用二维数组存储和处理扫雷游戏的数据;3. 掌握循环、条件判断等基本编程逻辑;4. 了解随机数的生成和应用。
技能目标:1. 能够编写并调试简单的Java程序;2. 能够运用所学知识设计并实现扫雷游戏的初级版本;3. 提高问题分析、程序设计和编程实现的能力;4. 培养团队协作和沟通表达能力。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学习积极性;2. 培养学生勇于尝试、面对挑战的精神;3. 增强学生的逻辑思维能力和解决问题的自信心;4. 引导学生关注程序设计在现实生活中的应用,认识到编程的价值。
课程性质分析:本课程为中学信息技术课程,结合Java编程语言和扫雷游戏设计,旨在提高学生的编程兴趣和实际操作能力。
学生特点分析:初中年级学生对新鲜事物充满好奇,具备一定的逻辑思维能力,但编程基础薄弱,需要通过实际操作和趣味性强的案例来提高学习兴趣。
教学要求:1. 注重理论与实践相结合,让学生在实际操作中掌握Java编程知识;2. 采用任务驱动法,引导学生主动探究和解决问题;3. 创设有趣的游戏场景,提高学生的学习积极性;4. 分阶段教学,逐步提高学生编程能力和逻辑思维能力。
二、教学内容1. Java基本语法与程序结构- 数据类型、变量、常量- 运算符、表达式、语句- 程序流程控制(顺序、分支、循环)2. 二维数组的使用- 二维数组的定义、初始化- 遍历二维数组- 二维数组的应用场景3. 编程逻辑- 循环结构(for、while)- 条件判断(if、else、switch)- 随机数的生成与应用4. 扫雷游戏设计与实现- 游戏规则及界面设计- 二维数组存储雷区数据- 排雷逻辑实现- 游戏胜负判断5. 编程实践- 设计并编写扫雷游戏代码- 调试与优化程序- 团队协作与分享教学内容安排与进度:第1-2课时:Java基本语法与程序结构第3课时:二维数组的使用第4课时:编程逻辑第5-6课时:扫雷游戏设计与实现第7课时:编程实践与总结教材章节关联:《Java编程基础》第1章:Java概述《Java编程基础》第2章:数据类型与运算符《Java编程基础》第3章:控制流程《Java编程基础》第4章:数组与方法《Java编程基础》第5章:面向对象编程(部分内容)教学内容科学性和系统性:确保教学内容符合学科知识体系,由浅入深,让学生逐步掌握Java编程基础知识,并通过实际案例将所学知识应用于实践。
java课程设计扫雷

java课程设计扫雷一、课程目标知识目标:1. 让学生掌握Java基础语法,包括变量声明、数据类型、运算符和流程控制语句;2. 培养学生运用面向对象编程思想,掌握类与对象的基本概念,以及继承、封装和多态等特性;3. 通过扫雷游戏的案例,让学生学会使用二维数组处理游戏逻辑。
技能目标:1. 培养学生运用所学知识独立编写程序的能力,实现扫雷游戏的主体功能;2. 提高学生分析问题、解决问题的能力,学会运用模块化思维进行编程;3. 培养学生团队协作意识,学会在项目中分工合作、共同完成项目。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成积极向上的学习态度;2. 培养学生面对困难敢于挑战、勇于克服的精神,增强自信心;3. 培养学生遵守编程规范,养成良好的编程习惯。
本课程针对高年级学生,在已有Java基础知识的基础上,通过设计扫雷游戏项目,使学生在实践中巩固和提高所学知识。
课程注重培养学生的编程技能、团队协作能力和解决实际问题的能力,同时关注学生的情感态度价值观培养,使学生在轻松愉快的氛围中学习编程。
课程目标具体、可衡量,为教学设计和评估提供明确方向。
二、教学内容1. Java基础语法复习:变量声明、数据类型、运算符、流程控制语句(包括条件语句、循环语句等);2. 面向对象编程:类与对象、构造方法、继承、封装、多态;3. 二维数组:声明、初始化、遍历、应用;4. 游戏设计原理:游戏循环、事件处理、界面设计;5. 扫雷游戏项目开发:需求分析、模块划分、编码实现、测试与优化。
教学内容参考教材相关章节,结合课程目标进行组织。
教学大纲安排如下:1. 复习Java基础语法(1课时);2. 面向对象编程知识讲解与练习(2课时);3. 二维数组知识讲解与练习(1课时);4. 游戏设计原理介绍(1课时);5. 扫雷游戏项目开发:需求分析、模块划分(1课时);6. 扫雷游戏项目开发:编码实现、测试与优化(3课时)。
扫雷java课程设计

扫雷java课程设计一、课程目标知识目标:1. 掌握Java基础语法,包括数据类型、运算符、控制流程等;2. 学会使用Java进行面向对象编程,理解类与对象的关系,掌握封装、继承、多态等概念;3. 了解Java图形用户界面(GUI)设计,掌握Swing组件的使用;4. 学会使用Java异常处理,提高程序的稳定性和可靠性;5. 掌握扫雷游戏的逻辑设计和实现。
技能目标:1. 能够运用Java编写简单的程序,实现基础功能;2. 能够运用面向对象思想进行问题分析,设计合理的类和对象;3. 能够独立完成扫雷游戏的编写,具备一定的编程实践能力;4. 能够运用所学知识解决实际问题,具备一定的创新和拓展能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习动力;2. 培养学生良好的编程习惯,注重代码规范和优化;3. 培养学生面对问题积极思考、独立解决的能力,增强自信心;4. 培养学生团队合作精神,学会沟通与协作。
课程性质:本课程为Java语言编程实践课程,以项目为导向,注重培养学生的编程能力和实际操作能力。
学生特点:学生具备一定的计算机基础,了解编程基本概念,但对Java语言和面向对象编程尚不熟悉。
教学要求:结合学生特点,采用案例教学,由浅入深地引导学生掌握Java编程技能,注重实践操作,提高学生编程水平。
同时,关注学生情感态度价值观的培养,使学生在学习过程中形成积极、主动的学习态度。
通过课程学习,将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. Java基础语法:- 数据类型与变量- 运算符与表达式- 控制流程(if条件语句、for循环、while循环)- 数组的使用2. 面向对象编程:- 类与对象- 封装、继承、多态- 抽象类与接口- 包的使用3. Java图形用户界面设计:- Swing组件基本使用- 布局管理器- 事件处理机制4. 异常处理:- 异常的概念与分类- try-catch-finally结构- 自定义异常5. 扫雷游戏设计与实现:- 游戏逻辑分析- 界面设计- 功能模块编写(如:初始化雷区、计算周围雷数、标记与挖雷等)- 游戏测试与优化教学内容安排与进度:第一周:Java基础语法学习第二周:面向对象编程基础第三周:Java图形用户界面设计第四周:异常处理与扫雷游戏逻辑分析第五周:扫雷游戏功能模块编写与测试本教学内容根据课程目标,结合教材章节进行选择和组织,确保内容的科学性和系统性。
java扫雷源代码和课程设计

java扫雷源代码和课程设计一、课程目标知识目标:1. 学生能理解Java语言中面向对象编程的基本概念,包括类、对象、继承、封装和多态。
2. 学生能掌握Java的基本语法,如条件语句、循环语句、数组的使用。
3. 学生能运用所学知识实现扫雷游戏的逻辑设计。
技能目标:1. 学生通过分析扫雷游戏的规则,能自主设计游戏的类和对象,提升问题分析能力。
2. 学生能编写并调试扫雷游戏的源代码,培养编程实践能力。
3. 学生能通过课堂讨论和协作,提高团队协作和沟通能力。
情感态度价值观目标:1. 学生在探索Java编程的过程中,培养对计算机科学的兴趣和热情。
2. 学生通过解决编程问题,锻炼克服困难的意志,增强自信心。
3. 学生在团队合作中,学会尊重他人意见,培养良好的合作精神和沟通技巧。
课程性质:本课程为信息技术课程,旨在通过实际操作和项目实践,帮助学生掌握Java编程的基本知识和技能。
学生特点:学生处于高年级阶段,具备一定的编程基础和逻辑思维能力,对实际项目开发有较高的兴趣。
教学要求:教师应注重理论与实践相结合,引导学生主动探索,关注学生个体差异,提供针对性的指导。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,培养其良好的编程习惯和团队合作精神。
通过课程目标的分解和实施,确保学生达到预期的学习成果。
二、教学内容1. 面向对象编程基础:- 类的定义与使用- 对象的创建与操作- 继承、封装和多态的概念与应用2. Java基本语法:- 条件语句(if-else,switch)- 循环语句(for,while,do-while)- 数组的使用与操作3. 扫雷游戏逻辑设计:- 游戏规则分析- 类的设计与实现(如:雷区类、格子类、游戏界面类等)- 游戏逻辑的编写与调试4. 项目实践:- 分组讨论与协作- 源代码编写与调试- 游戏功能测试与优化教学内容安排和进度:1. 第1-2课时:面向对象编程基础,引入类和对象的概念,讲解继承、封装和多态。
复制java扫雷游戏课程设计

复制java扫雷游戏课程设计一、课程目标知识目标:1. 让学生掌握Java基础语法和面向对象编程思想,能运用所学知识编写简单的游戏程序;2. 让学生了解扫雷游戏的基本规则和逻辑,理解游戏设计的基本流程;3. 使学生掌握使用Java进行二维数组操作和基本算法实现。
技能目标:1. 培养学生独立编写Java程序的能力,提高编程实践技能;2. 培养学生分析问题、解决问题的能力,能够将实际问题转化为程序逻辑;3. 培养学生团队协作和沟通能力,能够共同完成一个完整的游戏项目。
情感态度价值观目标:1. 激发学生对编程的兴趣,培养学生主动探究、自主学习的精神;2. 培养学生面对挑战时的坚持和耐心,树立克服困难的信心;3. 培养学生遵守编程规范,养成良好的编程习惯,提高职业道德素养。
课程性质:本课程为实践性较强的编程课程,以项目为导向,注重培养学生的动手能力和实际应用能力。
学生特点:学生具备一定的Java基础,对编程感兴趣,但实践经验不足,需要通过实际项目来提高。
教学要求:教师需引导学生掌握游戏设计的基本原理和编程技巧,注重启发式教学,鼓励学生积极参与讨论和实际操作。
同时,关注学生的个体差异,给予不同学生个性化的指导。
通过本课程的学习,使学生能够独立完成一个Java扫雷游戏的编写,达到预期的学习成果。
二、教学内容1. Java基础语法复习:变量、数据类型、运算符、控制结构(条件语句、循环语句);2. 面向对象编程:类与对象、继承与多态、接口与实现;3. 二维数组:数组声明、初始化,遍历和操作二维数组;4. 游戏设计原理:扫雷游戏规则、界面设计、逻辑实现;5. 编程实践:使用Java编写扫雷游戏的各个模块,如界面展示、地雷生成、翻开格子、标记地雷等;6. 算法实现:查找算法、递归算法等在扫雷游戏中的应用;7. 软件测试:单元测试、集成测试,确保游戏程序的正确性和稳定性;8. 项目实战:分组进行项目开发,按照软件工程流程,完成需求分析、设计、编码、测试和总结。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 课程设计题目:扫雷游戏…系别信息与计算科学专业班级信息与计算科学091班学生姓名余启张昱宋加望指导教师贺慧琳提交日期 2012年5月25日目录一、设计目的(一级标题,用黑体小三) (3)二、设计要求和设计指标 (3)三、设计内容 (3)总体设计3MineGame类4MineArea5Block类7BlockView类7LayMines类9Record类9ShowRecord类10userDefine 类11voiceShow类13ruleShow 类14authorShow 类16所需图像17所需音频17整体效果17四、本设计改进和建议 (20)五、总结(感想和心得等) (20)六、主要参考文献 (20)附录 (20)一、设计目的通过选择《Java课程设计(第二版)》中扫雷游戏,这个综合性的题目作为本次的课程设计。
可以让我们更加熟悉Java程序设计这门课程,学会熟练使用Jcreator这个软件,加深对Java语言的掌握,提高编程水平。
同时培养独立思考和同学间团结合作的能力,为毕业设计以及将来的工作打下坚实的基础。
二、设计要求和设计指标参考Windows 2000/XP系统提供的扫雷游戏,改进扫雷游戏程序,增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。
三、设计内容总体设计在设计扫雷游戏时,需要编写个Java源文件:、、、、、、、、、、ruleShow扫雷游戏除了需要编写上述java 源文件所给出的类外,还需要Java 系统提供的一些重要的类,如File、JButton、和Jlabel等类。
扫雷游戏所用到的一些重要的类以及之间的组合关系如图1所示:图1 类之间的组合关系MineGame类3.2.1. 效果图(如下图2)图2 MineGame创建的窗口3.2.2 UML类图MineGame类是包中Jframe的一个子类,并实现了ActionListener接中,标明该类的主要成员变量和方法的UML图如图3所示图3 MineGame类的UML图以下是UML图中有关数据和方法的详细说明。
1)成员变量· bar和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级”“中级”“高级”“自定义”“扫雷英雄榜”“背景声音”“退出”“游戏规则”“制作人”等·MineArea 是扫雷区域,提供有关扫雷的主要功能。
·“英雄榜”负责存放三个级别的扫雷最好成绩。
·showheroRecord负责显示英雄榜中的数据·userdefine负责用户自定义功能·VoiceShow 负责背景音乐功能·ruleshow负责显示游戏规则功能·authorshow负责显示作者功能2)·MineGame()是橘色造方法,负责完成窗口的主要功能·actionPerformed(ActionEvent)方法是MineGame类实现的ActionListerer接口中的方法,该方法负责执行菜单发出的有关命令。
用户选择菜单项可以触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作,例如将mineAreaw创建的雷区设置为初级中级高级等·Main(String[])方法是程序的入口方法3.2.3代码(见附录1)MineArea3.3.1 效果图:(见下图4)图4 MineArea创建的扫雷区域效果图3.3.2 UML图MineArea类是包中JPanel容器的子类,实现了ActionListener和MouserListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。
标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图5:图5 MineGame类之间组合关系的UML图以下是UML图中有关数据和方法的详细说明。
1)成员变量·Block是Block类型的数组,用来确定雷区有多少需进行扫雷的方块。
·blockView是Blockview类型的数组,负责为block数组中的Block对象提供视图。
·Lay是LayMines类型的对象,负责设置block数组中的哪些方块是雷或不是雷。
·Record负责提供保存成绩的界面,是一个对话框,默认不可见。
用户只有扫雷成功后(用时最少),才能看见该对话框。
·reStart是一个按钮对象,用户单击它重新开始游戏。
·time是计时器对象,负责计算用户的用时。
2)方法·initMineArea(int,int,int,int)方法可根据参数提供的数据设置雷区的宽度,高度,雷的数目以及雷区的级别。
·actionPerformed(ActionEvent)是MIneArea类实现ActionListener接口中的方法。
当用户单击blockView中的某个方块时,actionPerformed(ActionEvent)方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,若该方块下有雷,actionPerformed (ActionEvent)方法将使用户输掉本局,若该方块下又雷,actionPerformed(ActionEvent)方法将显示BlockView对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的8个方块中总共有多少颗雷·show()方法是一个递归方法。
actionPerformed(ActionEvent)方法执行时将调用show 方法进行扫雷。
·mousePress(MouseEvent)方法是MineArea类实现的MouseListener接口中的方法,当用户按下鼠标右键时,mousePress(MouseEvent)方法负责让方块上显示一个探雷标记。
·inquireWin()方法用来判断用户是否扫雷成功,如果成功该方法负责让record对话框可见。
所谓扫雷成功是指不仅找到了全部的雷而且用时最少。
3.3.3代码(见附录2)Block类3.4.1.效果图Block对象负责封装雷区中方块中的数据以及对这些数据的操作,外观效果由Blockview负责提供(见后面的BlockView)。
3.4.2.UML图Block类创建的对象是数组block的单元的对象。
Block型数组block是MineArea类的重要成员之一。
标明Block类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如下图6:图6 Block类的UML图以下是UML图中有关数据的方法的详细说明。
1)成员变量·name是方块上的名字。
·aroundMineNumber是方块周围雷的数目。
·mineIcon是方块上雷的图标。
·sMine用来表示方块是否是雷。
·isMark用来表示方块是否被标记。
·isOpen用来表示方块是否被挖开。
2)方法·setAroundMineNumber(int)方法用来设置aroundMineNumber的值。
·getAroundMineNumber()方法用来获取aroundMineNumber的值。
3.4.3代码(见附录3)BlockView类3.5.1.效果图BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。
BlockView对象使用一个标签和按钮为Block对象提供视图,标签和按钮按着卡片布局层叠在一起,默认状态按钮遮挡住标签。
当用户单击按钮后,如果Block对象时雷,BlockView对象中的标签显示的事雷的图标;如果Block对象不是雷,标签显示的是周围雷的总数。
效果如图7所示:图7 BlockView对象3.5.2.UML图BlockView类是javax。
swing包中JPanel类的一个子类,创建的对象是数组blockView 的单元中的对象。
BlockView型数组BlockView是MineArea类的重要成员之一。
标明BlockView类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如图8:图8 MineArea类的UML图以下是UML图中有关数据的方法的详细说明。
1)成员变量·blockNameOrIcon用来显示Block对象的name,number和mineIcon属性。
·blockCover用来遮挡blockNameOrIcon。
·card卡片布局2)方法·giveView(Block block)方法给参数指定的Block对象提供视图,如果Block对象的isMine属性为true,即方块是雷,那么blockNameOrIcon标签上设置的文本就是Block对象的name属性的值,同时blockNameOrIcon标签上设置的图标就是Block对象的mineIcon 指定的图标。
如果Block对象的isMine属性为false,blockNameOrIcon标签上设置的图标就是Block对象的aroundMineNumber属性的值,及周围雷的数目·seeblockNameOrIcon()方法让用户看见视图中的标签,无法看见按钮。
·seeblockNameOrIcon(0方法让用户看见视图中的按钮,无法看见标签。
3.5.3代码(见附录4)LayMines类3.6.1.效果图LayMines对象使用随机算法制定MineArea对象中的哪些Block对象是雷,哪些对象不是雷,没有可现实的效果图。
3.6.2.UML图LayMines创建的对象Lay是MineArea中的重要成员,表明该类的主要成员变量和方法以及和MineArea类之间组合关系的UML图如图9:图9 LayMines类的UML图以下是UML图中有关数据的方法的详细说明。
1)成员变量mineIcon用来存放一个格式为gif的图像。
2)方法layMinesForBlock(Block[][],in)方法对参数指定的Block数组进行设置,其中int参数指定雷的数目,当指定Block数组中每个单元中的方块是雷时,就将该房快上的图标设置为mineIcon,当指定Block数组中每个单元中的方块不是雷时,就将该方块的名字设置为周围的雷的数目。