结对作业

题目简介

参考Windows 2000/XP系统提供的扫雷游戏,模拟做了一个扫雷游戏程序, 增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则菜单项。主要实现了如下算法:单击某行某列后产生不在单击处引爆的地图。出现空格后引发递归的清空算法。

 结对人的博客地址

http://www.cnblogs.com/FBean/p/4508957.html

代码地址

https://github.com/hutua/test3.git

结对分工情况

李建宾 负责MineGame.java、MineArea.java、BlockView.java、BlockView.java

韩     宁 负责LayMines.java、Record.java、ShowRecord.java、userDefine.java、ruleShow.java

结对实践过程

1、  LayMines类

LayMines对象使用随机算法制定MineArea对象中的哪些Block对象是雷,哪些对象不是雷,没有可现实的效果图。

1)成员变量

mineIcon用来存放一个格式为gif的图像。

2)方法

layMinesForBlock(Block[][],in)方法对参数指定的Block数组进行设置,其中int参数指定雷的数目,当指定Block数组中每个单元中的方块是雷时,就将该房快上的图标设置为mineIcon,当指定Block数组中每个单元中的方块不是雷时,就将该方块的名字设置为周围的雷的数目。

2、Record类

Record是javax。swing包中jDialog对话框的子类,并实现了ActionListener接口。Record创建的对象:record是MineArea类的成员之一,当用户扫雷成功时,该对象提供了保存成绩到文件的界面。

1)成员变量

·textName提供用户扫雷优胜者输入姓名

·用户单击”确定“按钮,可以保存成绩

2)方法

·actionPerformed(ActionEvent)方法是Record类实现的ActionListener接口中的方法,当用户单击”确定“按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时然后调用writeRecord(String,String)方法将信息写入”英雄榜“中。

·writeRecord(String,String)方法负责将有关信息扫雷用时,扫雷级别,扫雷优胜者姓名等心思写入到”英雄榜“文件。

3、ShowRecord类

ShowRecord创建的对象负责提供显示成绩的界面,

ShowRecord是javax。swing包中JDialog对话框的子类,并实现了ActionListener接口。ShowReacord创建的对象showHeroRecord是MineGame类的成员之一,当用户选择查看"英雄榜“菜单项时,该对话框可见,提供了查看扫雷的最好成绩的界面。

1)成员变量

·File存放文件的引用

·用户单击”显示成绩“按钮,可以查看各个级别扫雷的最好成绩。

·用户单击”重新计分“按钮,可以将”英雄榜“中的成绩恢复为初始值。

2)方法

·actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击”显示成绩“按钮后,该方法被执行,所执行的操作就是调用readAndShow()方法。

·readAndShow()方法负责读取存放在文件中的各个级别的扫雷最好成绩以及扫雷者姓名,并显示这些相关信息。

4、userDefine 类

userDefine是java.awt包中Rame框架的子类,并实现了ActionListener接口。userDefine创建的对像:usedefine是MineArea类的成员之一,当用户点击菜单栏中的游戏->自定义时,弹出界面,在界面的文本框中输入相应的数字。然后单击确定即可,或者单击取消退出界面。

1)成员变量

·行数,列数,雷数,分数:分别用来显示行数,列数,雷数,分数

·行数1,列数1,雷数1,分数1:用来自定义雷区的长度值,宽度值,所有的雷数值以及每赢一局所得的分数

·说明1,说明2 说明3,说明4:用来说明上述内容

·容器1,容器2,容器3 :用来装Label 和TextFiled,以方便布局

·确定,取消;单击“确定”后,如果输入的内容合法,就会实现自定义的雷区,如果不合法的话,就会弹出一个警告框,提示输入有误;单击“取消”退出自定义窗口。

2)方法

actionPerformrd(ActonEvent)方法是userDefine类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,将用户输入的信息传入程序,实验自定义雷区的难度级别。当用户单击界面的“取消”,该方法被执行,所执行的操作就是,退出用户自定义界面。

5、ruleShow 类

ruleShow是javax.swing包中JRame框架的子类,并实现了ActionListener接口。ruleShow创建的对像:ruleshow是MineArea类的成员之一,当用户点击菜单栏中的帮助->游戏规则时,弹出界面,说明游戏

1)成员变量

·la1:用来显示扫雷游戏的规则如下

·la2,la2………;用来显示下面几条游戏规则

·Con1,Con2,Con3;用来装la1,la2 以实现在JFrame中布局;

·bu1;用记单击bu1,关闭窗口;

2)方法

actionPerformrd(ActonEvent)方法是ruleShow类中实现的ActionListener接口中的方法,当用户单击界面的“确定”,该方法被执行,所执行的操作就是,并关闭界面。

测试情况

在程序代码基本完成后,经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在基本功能与画面上与Windows自带的扫雷游戏没有太大差别,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,比如在游戏中可以加入一些不同语音的提示,在游戏完成和失败的时候可以弹出一些小的Flash动画,还有就是可以扩展一下扫雷英雄榜的功能等。总的来说本次设计在功能上已经基本达到要求,其他细节方面有待以后完善

整体运行结果图

游戏菜单

帮助菜单

自定义难度

英雄榜

游戏规则

问题及心得

问题

1、界面的美观性做的不太好,比如说布局,颜色搭配有待改进

2、MineGame的初始化界面大小难以控制,特别是在自定义的情况下,需在手动改面窗口的大小。

心得

1、做完之后,确实有一点成就感,这种感觉激励着自已更加努力的学习这门课程

2、编程的进程肯定会遇到困难,要充分利用现有的资源 比如说互联网,书籍,这次实验多亏在在网上找的Java API,帮助我解决了不小困难。

3、要有团队合作精神,很感谢我的队友在这次实验给予我的帮助。

时间: 2024-10-27 16:56:32

结对作业的相关文章

结对作业:五子棋

本次结对作业我们组做的是五子棋,代码如下:package com.temptation.gobang; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.a

软件工程结对作业02(借鉴版)

软件工程结对作业02(借鉴版) 在编写程序的时候因为不会将Java程序嵌入进jsp中所以借鉴了一个学姐的程序,下面是学姐的程序.但在对学姐程序就行修改时发现了一些问题: 在Newjsp中能调用html中的题目个数的参数 在Myjsp中不能调用html中的题目个数的参数 其中这个参数timugeshu,是我自己后来添加的,用来改变题目个数的,与Java程序无关,只在jsp文件中作用 源程序: NewFeil.html <!DOCTYPE html> <html> <head&g

结对作业电梯调度问题

以下为结对作业,我只能做到看懂,真的不太会编..我会努力学的 问题描述: 某大楼共有20层,现安装4个电梯参数如下: 1号电梯 全楼层 最大负载800kg 2号电梯 单数层 最大负载800kg 3号电梯 双数层 最大负载1600kg 4号电梯 全楼层 最大负载2000kg 分析: 4个电梯是相互独立工作的,那么分为4个相互独立的调度模块.1号电梯与4号电梯均服务于全楼层且仅有最大负载不同,而2号和3号电梯 服务模式类似.那么1.4号电梯调度模块可合并为一个.同样地,2.3号模块也可以合并.电梯调

结对作业——我的体会

首先非常荣幸能和李保全同学搭档 ,因为李保全同学的编程能力非常强,和他搭档可以让我学到很多东西. 在真正实践的过程中,我和李保全同学重复做了好几次算法设计,但是每次都出现很多问题,然后又一次次的推翻,在这个过程中,我最大的感触就是只有不断的尝试,才可以学的更过的东西,虽然在前面几次做算法的时候出现了很多问题,不是考虑太简单,就是考虑的过于复杂.对问题没有一个统筹的认识.在李保全身上我学到了对问题分析的一些东西.例如他把电梯分成了内和外两部分 来考虑,而我刚开始只是考虑功能,没有分开去想,我觉得这

结对作业--电梯调度

结对编程 结对成员:王长(2011040101179)CODING:https://coding.net/u/smile-wang  高庆阳(2013040101173) 博客:http://www.cnblogs.com/gaoqingyang1994/   CODING:https://coding.net/u/gaoqingyang1994 结对编程的优缺点 在结对编程模式下,一对程序员可以平等的.互补地进行开发工作:他们一起分析,一起设计,一起写测试用例,一起编码,一起做测试...这样在

结对作业(1.0版)

import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.LayoutStyle.ComponentPlacement; import java.awt.Font; import javax.swing.JT

软件工程网络15结对作业1

一.需求分析 1.题目需求 1)除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 2)运算符为 +, ?, ×, ÷ 3)并且要求能处理用户的输入,并判断对错,打分统计正确率. 4)要求能处理用户输入的真分数, 如 1/2, 5/12 等 5)使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目Myapp.exe -n 10 题目分析: 1)支持真分数和整数的运算: 2)能够判断对错,且输出正确答案:能够计算正确率并输出: 3)将程序弄

结对作业1

结对作业1 结对成员:孟鲜鲜 代码跳转入口. 代码功能:静态链表实现查找功能 代码审查表 功能模块名称 静态链表实现查找功能 审查人 张子扬 审查日期 2018/4/6 代码名称 用静态链表实现查找功能 代码作者 孟鲜鲜 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 是 头文件和定义文件的目录结构是否合理? 是 版权和版本声明是否完整? 无版权声明 重要 头文件是否使用了 ifndef/define/endif 预处理块? 否 头文件中是否只存放"声明"而不存放&q

软件工程结对作业 四则运算界面设计

软件工程结对作业 四则运算界面设计 康鑫  PB16060203 娄雨禛  PB16060356 一.项目分析 二.进度规划与完成情况 三.主要函数 四.简单的数据测试 五.编程困惑与心得 原文地址:https://www.cnblogs.com/RainLou/p/8735480.html

结对作业——随机生成四则运算

结对作业 UI 第三组 朱池苇 PB16150206 刘鼎乾 PB16070837 Github 地址: 项目简介 这次软件工程结对项目为制作一个给小学生用的四则运算出题软件,然后我们抽到的是UI组,也就是负责人机交互--随机生成四则运算--使用Core组封装好的dll模块. 需求分析 对上述各属性参数(生成题目的数量,操作数的数量,题目及答案中的数值的范围--)进行设置 调用Core模块得到题目和运算结果,显示题目,接受输入,并能判断答案是否正确 增加"倒计时"功能,每个题目必须在2