java集中上机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

扫雷游戏

一、实验实习目的及要求

加强对C语言的深入理解,提高学生分析问题,解决综合问题的能力。

二、实验实习设备(环境)及要求(软硬件条件)

设备:

操作系统:

编译软件:

三、实验实习内容简介:

1、需求分析

系统功能分析:

(1)游戏界面设计:游戏界面用BorderLayout和Gridlayout两个布局进行设计,界面中间使用Gridlayout设计成12行12列的雷区,界面菜单和雷区结合

用BorderLayout设计,界面菜单有雷数的显示和雷数自定义输入的文本框,

另外还有个开始按钮,用以确定雷数开始游戏。

(2)雷区设计: java.swing包中Jpanel容器创建对象:bombPanel,作为一个容器添加到继承了JFrame的Frame窗口的中心。其中bomb类继承了JButton

按钮,进行方块的布置和地雷的布置。方块包括地雷用类Bomb继承JButton,

定义雷区变量,包括方块或地雷的坐标,方块或地雷的状态等。

1、重要的成员变量

(1)BombRoundCount是bomb类属性,用来显示记录方块周围雷数的多少,然后显示在方块中央。

(2)BombNum, BlockNum,rightBomb, restBomb, restBlock是int类型,分别负责记录游戏当前地雷数量、方块数、找到的地雷数、剩余的雷数、剩余的方块数。

(3)bombButton是bomb类型的数组,负责设置数组中的哪些方块是雷或不是雷。

2、方法

(1)startBomb()方法可根据参数提供的数据设置雷区的雷数,其中方块数固定。

(2)start_actionPerformed(ActionEvent e)是实现的ActionListener接口中的方法。当用户单击开始时,start_actionPerformed(ActionEvent e)方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,若用户定义雷数少于5,将弹出错误提示,若不小于5则执行游戏。

(3)CountRoundBomb()方法是一个计算周围雷数算法,当需要检测的单元格本身无地雷的情况下,统计周围的地雷个数,记录到BombRoundCount中以数字形式显示在单元格。

(4)mousePressed(MouseEvent)方法是MineArea类实现的MouseListener 接口中的方法,当用户按下鼠标有件事mousePressed(MouseEvent)方法负责让方块上显示一个探雷标记。

(5)isWin()方法用来判断用户是否扫雷成功,如果成功该方法负责让一个文本框弹出提示游戏胜利。所谓扫雷成功是指找到了全部的雷。

(6)isNull(Bomb ClickedButton)方法是用来判断周围雷数是否为0的算法,是就用在turn(Bomb ClickedButton)方法中调用以翻开周围所有雷数为0的单元格。

(7)turn(Bomb ClickedButton)方法是进行翻开单元格的动作,还有actionPerformed(ActionEvent e),mouseClicked(MouseEvent e) Frame1_start_action,AdapterBomb_action,AdapterBomb_mouseAdapter

都是对事件的捕获及处理,其中有左键点击进行翻开动作或者还会弹出一个

文本框提示,右键点击进行地雷的标记,还有界面开始的监听。

2、系统设计

●系统应实现的主要功能:

(1)用户可以自定义雷数;

(2)用户可以按鼠标右键标记雷数并取消;

(3)用户通过左击小方块,进行扫雷。

●主要功能的概要设计:

总体流程图:

1、 扫雷游戏界面的设计:整体布局使用BorderLayout 和Gridlayout ,其中

BorderLayout 是总体的雷区和下方的菜单栏布局使用,Gridlayout 是雷区进行网格布局使用,界面采用了按钮,面板,文本框,标签等组件,按钮主要是退出和开始选项,还有和用户进行交互的文本框。界面的大小设为高和宽都为600,初始显示雷数为10,雷区区域小方格布局为12行12列。

2、 雷区的设计:将地雷随机安放在小方格中,通过用户的鼠标点击,翻开小方格,处

理它周围的信息并做出相应显示,点击过程中记录地雷剩余数量,不管扫雷游戏的输赢,又重新初始化游戏。

布雷: 扫雷:

3、进行雷区标记的设计:用户单击右键进行地雷的标记,这是对地雷位置的猜测,地雷数减1,而且被标记的位置不可以在点击,如需点击方块需要单击或双击右键才可以取消标记“F ”显示空白或者“Q ”,当显示“Q ”的时候点击方块,“Q ”字母会留在被翻开的方块上面。

是 否 否 是

各个具体功能实现和简单算法:

1、扫雷游戏界面的实现:

首先定义三个容器,整体界面c和菜单栏MenuPanel、雷区bombPanel。

Frame{

JPanel MenuPanel=new JPanel();

JPanel bombPanel=new JPanel();

JPanel c;

}

然后是三个容器的布置:

JbInit(){

c.setLayout(borderLayout1);

c.add(MenuPamel,BorderLayout.SOUTH);

c.add(bombPanel, java.awt.BorderLayout.CENTER);

}

最后是菜单栏,对“开始”按钮添加监听事件并检查是否自定义雷数符合规定,显示当前或剩余雷数,并设文本框自定义雷数:

JbInit{

BombNum = 10;

text = new JTextField("10", 3);//

nowBomb = new JLabel("当前雷数" + ":" + BombNum);

相关文档
最新文档