课程设计走迷宫.docx

上传人:b****0 文档编号:566716 上传时间:2022-10-11 格式:DOCX 页数:47 大小:1.37MB
下载 相关 举报
课程设计走迷宫.docx_第1页
第1页 / 共47页
课程设计走迷宫.docx_第2页
第2页 / 共47页
课程设计走迷宫.docx_第3页
第3页 / 共47页
课程设计走迷宫.docx_第4页
第4页 / 共47页
课程设计走迷宫.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

课程设计走迷宫.docx

《课程设计走迷宫.docx》由会员分享,可在线阅读,更多相关《课程设计走迷宫.docx(47页珍藏版)》请在冰豆网上搜索。

课程设计走迷宫.docx

课程设计走迷宫

 

Java语言与面向对象技术

课程设计报告

(2014--2015年度第1学期)

 

走迷宫

 

走迷宫的设计

1概述

1.1课程设计目的

1.加深对《Java语言与面向对象技术》课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤;

2.进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力;

3.课程设计将课本上的理论知识和实际应用相结合,锻炼学生发现问题、分析问题和解决问题的能力。

加强学生研发、编写、调试程序的能力;

4.培养学生在项目开发中团队合作精神、创新意识及能力;

5.提高学生科技论文写作能力,规范完成课程设计报告。

1.2课程设计内容

设计GUI界面的走迷宫游戏,游戏的目的是让走迷宫者从迷宫的入口处进从迷宫出口处出。

具体内容如下:

(1)程序根据文本文件生成迷宫,这些文本文件称作迷宫文件。

迷宫文件的扩展名为.maze,其中的文本内容有着特殊的组织结构:

任意两行文本所含有的字符个数必须相同,而且字符只可以是“*”、“#”、“0”或“1”。

迷宫文件中的“*”和“#”分别代表迷宫的入口和出口,“0”和“1”分别代表迷宫中的“路”和“墙”。

例如,迷宫文件“中等迷宫.maze”所生成的迷宫如图1-1所示。

//中等迷宫.maze文件

000000101000101001010

010*********

*00001010100010100101

010*********

00101000101011010010#

101000010100000010001

010*********

101000100011101001010

001010100101010100100

图1-1中等迷宫界面

(2)用户可以通过界面上提供的菜单选项,选择“迷宫文件”来生成对应的迷宫类型。

(3)用户可以通过界面上提供的菜单选项,选择迷宫中的“墙”和“路”的外观图像以及默认“墙”和“路”的图像。

同时用户也可以更改迷宫中“走迷宫者”的图像。

(4)当用户开始玩游戏时想重新开始,用户可以随时单击界面上下方图片位置提供的按钮,重新开始走迷宫。

(5)本程序还具有音乐播放的功能,当用户成功移动走迷宫者后,程序播放简短的一声音乐。

(6)本迷宫程序增加“英雄榜”功能既排名功能,当用户成功将迷宫中的走迷宫者从入口移动到出口,如果成绩能排进前三名,就弹出一个对话框,将用户的成绩保存到“英雄榜”中,并且可以查看“英雄榜”以及删除“英雄榜”。

2系统需求分析

2.1系统目标

设计一个基于java的走迷宫小游戏,游戏的结果是让走迷宫者从迷宫的入口处走到迷宫的出口处。

根据已有的走迷宫小游戏进行新功能的增加。

2.2主体功能

(1)玩家可以任意选择不同的迷宫图进行走迷宫游戏。

(2)玩家可以自定义玩家头像、墙的图像以及路的图像。

(3)游戏进行时可以点击提示按钮重新开始游戏

(4)根据玩家所玩的记录进行排行榜设置,分别列出保存各类型迷宫(简单迷宫、中等迷宫、复杂迷宫)的前三名,玩家完后可以点击英雄榜自行查看。

(5)玩家可以清除英雄榜并且重新载入游戏。

2.3开发环境

Eclipse

3系统概要设计

3.1系统的功能模块划分

1.系统的总体设计

在设计走迷宫时,需要编写6个java源文件:

MazeWindow.java、Maze.java、WallOrRoad.java、MazePoint.java、PersonInMaze.java、HandleMove.java、Record.java、ShowRecord.java和Sound.java。

走迷宫除了上述6个java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JmenuItem和File等类。

走迷宫所用到的一些重要的类以及之间的组合关系如下图所示:

 

图3-1各类之间的关系

2.系统模块划分

本系统主要有以下几个功能模块:

创建走迷宫的主窗口、创建迷宫、创建墙和路及确定位置的对象,创建走迷宫者,创建处理键盘事件对象,创建英雄榜及显示英雄榜。

该软件主要组成模块和各个模块之间的调用关系如下图所示:

3.2系统流程图

玩家开始打开界面进行游戏,通过菜单选项选择简单、中等、复杂迷宫中的一种进行游戏。

开始的界面各个图像是程序默认的图像,玩家也可以根据自己的喜好自行选择文件夹里的图像来设置墙的图像、路的图像以及走迷宫者的图像。

然后玩家根据提示点击走迷宫者开始游戏,玩家通过对键盘的操作来控制走迷宫者,使其从入口进入从出口出来。

在玩的期间如果玩家在十秒内没能从出口出来则玩家的图像会变成猪的图像。

游戏结束后如果玩家破纪录则根据提示进入英雄榜,同时可以查看英雄榜。

玩家还可以清除英雄榜重新打开界面进行游戏。

具体活动流程图如下所示:

图3-3活动流程图

4系统详细设计

4.1系统的主界面设计

1.成员变量

maze是Maze类声明的对象,用来刻画迷宫,是MazeWindow类中最重要的成员之一。

MazeWindow类根据迷宫文件,即根据该类中的mazeFile来创建maze对象。

bar是JMenuBar创建的菜单条,用来添加菜单。

bar被放置在窗口的顶部。

menuChoice是JMenu创建的菜单,其名字为“选择迷宫文件”。

menuChoice和menuImage被添加到菜单条bar中。

wallImage、roadImage、和defaultImage是JMenuItem创建的菜单项,名字依次为“墙的图像”、“路的图像”和“墙和路的默认图像”,这三个菜单项被添加到菜单menuImage中。

wallImage、roadImage和defaultImage都将当前窗口注册为自己的ActionEvent事件监控器。

mazeFile、wallImageFile和roadImageFile是File的对象,其中mazeFile用来存放迷宫文件的引用,而wallImageFile和roadImageFile分别用来存放迷宫中“墙”和“路”的外观图像文件的引用。

renew是JButton创建的按钮对象,名字为“重新开始”。

Renew将当前窗口注册为自己的ActionEvent事件监控器。

2.方法

MazeWindow()是构造方法,负责完成窗口的初始化操作,其重要的操作之一是:

读取当前目录中扩展名为.maze的迷宫文件,并根据迷宫文件的名字创建JMenuItem菜单项添加到menuChoice菜单中,然后将当前窗口注册为每个菜单上的ActionEvent事件监控器。

另外,该构造方法在执行过程中,将mazeFile初始化为menuChoice菜单中的第一个菜单项所代表的迷宫文件,并根据该迷宫文件创建MazeWindow窗口中的maze对象。

该构造方法还对wallImageFile和roadImageFile进行了初始化,并指定迷宫中“墙”和“路”所使用的默认图像。

init()方法根据迷宫文件初始化maze对象,完成必要的初始化操作。

actionPerformed(ActionEvent)方法是MazeWindow类实现的ActionListener接口中的方法。

MazeWindow类创建的窗口时menuChoice菜单和menuImage菜单中的菜单项以及renew按钮上的ActionEvent事件监控器。

当用户选中某个菜单项或单击按钮时,窗口将执行actionPerformed(ActionEvent)方法进行想应得操作。

如果用户选中menuChoice菜单中的某个菜单项,即用户选择了一个迷宫文件,actionPerformed(ActionEvent)方法所执行的操作就是改变mazeFile所引用的迷宫文件,然后调用init()方法。

如果用户选中menuImage菜单中的wallImage或roadImageFile菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是分别改变wallImage和roadImage所引用的图像文件,从而让maze对象改变“墙”或路的图像,如果用户选中menuImage菜单中的defaultImage菜单项,actionPerformed(ActionEvent)方法所执行的操作就是将wallImage和roadImageFile所引用的图像文件恢复到默认设置,并让maze对象恢复“墙”或“路”的默认图像。

当用户单击rennew按钮时,actionPerformed(ActionEvent)方法所进行的操作时保持当前的mazeFile所引用的迷宫文件,并执行init方法。

main(String[])方法是程序运行的入口方法。

3.主界面效果图如下图所示

图4-1主界面图

4.2Maze的设计

1.成员变量

mazeFile是File类声明的对象,用来存放迷宫文件的引用。

mazePoint是MazePoint类型的二位数组,其单元为MazePoint类创建的对象,用来确定“墙”和“路”以及“走迷宫者”的位置,即确定WallOrRoad以及PersonInMaze对象在maze对象中的位置。

wallOrRoad是WallOrRoad类型的二维数组,七单元为WallOrRoad类索川江的对象,用来表示迷宫中的“墙”或“路”。

person是PersonInMaze类创建的对象,用来表示迷宫中的“走迷宫者”。

handleMove是HandleMove类创建的对象,负责处理person对象上的键盘事件。

wallImage和roadImage是File类声明的对象,用来存放绘制“墙”和“路”的外观的图文件的引用。

distance、m和n是int型数据。

mazePoint对象根据distance的值来进行初始化,以便确定mazePoint对象之间的距离,m和n的值是二维数组mazePoint的行数和列数。

2.方法

maze()是构造方法,负责创建maze对象。

maze对象调用setmazeFile(File)方法可根据参数指定的迷宫文件完成必要的初始化,例如,创建mazePoint和wallOrRoad数组等。

maze对象调用setWallImage(File)方法可以设置wallImage文件对象。

maze对象调用setRoadImage(File)方法可以设置roadImage文件对象。

maze对象调用getHandleMove()返回到handleMove对象。

3.根据编写的简单迷宫文件所显示的迷宫图像如下图所示

图4-2简单迷宫图像-

4.3PersonInMaze的设计

1.效果图

PersonInMaze创建的对象效果如图所示

图4-3走迷宫者图像

2.类的主要成员变量和方法

成员变量:

point是MazePoint型对象,用来确定PersonInMaze对象在Maze所创建的迷宫容器的位置。

tool是Toolkit对象,用来获得Inage对象。

方法:

MazePoint()是构造方法,负责完成MazePoint对象的初始化。

PersonInMaze对象调用setAtMazePoint(MazePoint)方法设置自己所在的“点”,即设置属性point的对象引用。

PersonInMaze对象电影getAtMazePoint()返回自己所在的“点”,即返回point对象的引用。

PersonInMaze对象调用painTComponent(Graphics)方法绘制图形,即绘制tool对象所获得的Image对象。

4.4WallOrRoad的设计

1.成员变量

isRoad、isWall、isEnter和isOut是boolean型数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1