Java课程设计走迷宫

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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方法。
wallImage和roadImage是File类声明的对象,用来存放绘制“墙”和“路”的外观的图文件的引用。
distance、m和n是int型数据。mazePoint对象根据distance的值来进行初始化,以便确定mazePoint对象之间的距离,m和n的值是二维数组mazePoint的行数和列数。
Java语言与面向对象技术
课程设计报告
( 2014-- 2015年度第1学期)
走迷宫
走迷宫的设计
1
课程设计目的
1.加深对《Java语言与面向对象技术》课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤;
2.进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力;
4.4
1.成员变量
isRoad、isWall、isEnter和isOut是boolean型数据,取值为true或false,分别用了表示WallOrRoad对象是否为“路”、“墙”、“入口”和“出口”。
point是MazePoint型对象,用来确定WallOrRoad对象在Maze所创建的迷宫容器中的位置。
(1)程序根据文本文件生成迷宫,这些文本文件称作迷宫文件。迷宫文件的扩展名为.maze,其中的文本内容有着特殊的组织结构:任意两行文本所含有的字符个数必须相同,而且字符只可以是“*”、“#”、“0”或“1”。迷宫文件中的“*”和“#”分别代表迷宫的入口和出口,“0”和“1”分别代表迷宫中的“路”和“墙”。例如,迷宫文件“中等迷宫.maze”所生成的迷宫如图1-1所示。
3.课程设计将课本上的理论知识和实际应用相结合,锻炼学生发现问题、分析问题和解决问题的能力。加强学生研发、编写、调试程序的能力;
4.培养学生在项目开发中团队合作精神、创新意识及能力;
5.提高学生科技论文写作能力,规范完成课程设计报告。
课程设计内容
设计GUI界面的走迷宫游戏,游戏的目的是让走迷宫者从迷宫的入口处进从迷宫出口处出。具体内容如下:
maze对象调用setRoadImage(File)方法可以设置roadImage文件对象。
maze对象调用getHandleMove()返回到handleMove对象。
3. 根据编写的简单迷宫文件所显示的迷宫图像如下图所示
图4-2 简单迷宫Байду номын сангаас像-
4.3
1.效果图
PersonInMaze创建的对象效果如图所示
WallOrRoad对象调用setIsRoad(boolean)方法设置自己是否为迷宫的“路”。
WallOrRoad对象调用getIsRoad()方法判断自己是否为迷宫的“路”,即返回isRoad属性的值。
WallOrRoad对象调用setIsWall(boolean)方法设置自己是否为迷宫的“墙”。
wallImage和roadImage是File类型的对象,用来确定WallOrRoad对象上所绘制的图像文件。
tool是Toolkit型对象,负责创建Image对象。
2.方法
WallOrRoad()是构造方法,负责完成WallOrRoad对象的初始化。
WallOrRoad对象调用setIsEnter(boolean)方法设置自己是否为迷宫的“入口”。
图3-1各类之间的关系
2.系统模块划分
本系统主要有以下几个功能模块:创建走迷宫的主窗口、创建迷宫、创建墙和路及确定位置的对象,创建走迷宫者,创建处理键盘事件对象,创建英雄榜及显示英雄榜。
该软件主要组成模块和各个模块之间的调用关系如下图所示:
系统流程图
玩家开始打开界面进行游戏,通过菜单选项选择简单、中等、复杂迷宫中的一种进行游戏。开始的界面各个图像是程序默认的图像,玩家也可以根据自己的喜好自行选择文件夹里的图像来设置墙的图像、路的图像以及走迷宫者的图像。然后玩家根据提示点击走迷宫者开始游戏,玩家通过对键盘的操作来控制走迷宫者,使其从入口进入从出口出来。在玩的期间如果玩家在十秒内没能从出口出来则玩家的图像会变成猪的图像。游戏结束后如果玩家破纪录则根据提示进入英雄榜,同时可以查看英雄榜。玩家还可以清除英雄榜重新打开界面进行游戏。具体活动流程图如下所示:
aze文件
00000010
00001010
*0000101
00101010
0010010#
00010001
01010010
01001010
00100100
图1-1中等迷宫界面
(2)用户可以通过界面上提供的菜单选项,选择“迷宫文件”来生成对应的迷宫类型。
(3)用户可以通过界面上提供的菜单选项,选择迷宫中的“墙”和“路”的外观图像以及默认“墙”和“路”的图像。同时用户也可以更改迷宫中“走迷宫者”的图像。
2.方法
MazeWindow()是构造方法,负责完成窗口的初始化操作,其重要的操作之一是:读取当前目录中扩展名为.maze的迷宫文件,并根据迷宫文件的名字创建JMenuItem菜单项添加到menuChoice菜单中,然后将当前窗口注册为每个菜单上的ActionEvent事件监控器。另外,该构造方法在执行过程中,将mazeFile初始化为menuChoice菜单中的第一个菜单项所代表的迷宫文件,并根据该迷宫文件创建MazeWindow窗口中的maze对象。该构造方法还对wallImageFile和roadImageFile进行了初始化,并指定迷宫中“墙”和“路”所使用的默认图像。
WallOrRoad对象调用getIsEnter()方法判断自己是否为迷宫的“入口”,即返回isEnter属性的值。
WallOrRoad对象调用setIsOut(boolean)方法设置自己是否为迷宫的“出口”。
WallOrRoad对象调用getIsOut()方法判断自己是否为迷宫的“出口”,即返回isOut属性的值。
menuChoice是JMenu创建的菜单,其名字为“选择迷宫文件”。menuChoice和menuImage被添加到菜单条bar中。
wallImage、roadImage、和defaultImage是JMenuItem创建的菜单项,名字依次为“墙的图像”、“路的图像”和“墙和路的默认图像”,这三个菜单项被添加到菜单menuImage中。wallImage、roadImage和defaultImage都将当前窗口注册为自己的ActionEvent事件监控器。
2. 方法
maze()是构造方法,负责创建maze对象。
maze对象调用setmazeFile(File)方法可根据参数指定的迷宫文件完成必要的初始化,例如,创建mazePoint和wallOrRoad数组等。
maze对象调用setWallImage(File)方法可以设置wallImage文件对象。
wallOrRoad是WallOrRoad类型的二维数组,七单元为WallOrRoad类索川江的对象,用来表示迷宫中的“墙”或“路”。
person是PersonInMaze类创建的对象,用来表示迷宫中的“走迷宫者”。
handleMove是HandleMove类创建的对象,负责处理person对象上的键盘事件。
mazeFile、wallImageFile和roadImageFile是File的对象,其中mazeFile用来存放迷宫文件的引用,而wallImageFile和roadImageFile分别用来存放迷宫中“墙”和“路”的外观图像文件的引用。
renew是JButton创建的按钮对象,名字为“重新开始”。Renew将当前窗口注册为自己的ActionEvent事件监控器。
2
系统目标
设计一个基于java的走迷宫小游戏,游戏的结果是让走迷宫者从迷宫的入口处走到迷宫的出口处。
根据已有的走迷宫小游戏进行新功能的增加。
主体功能
(1)玩家可以任意选择不同的迷宫图进行走迷宫游戏。
(2)玩家可以自定义玩家头像、墙的图像以及路的图像。
(3)游戏进行时可以点击提示按钮重新开始游戏
(4)根据玩家所玩的记录进行排行榜设置,分别列出保存各类型迷宫(简单迷宫、中等迷宫、复杂迷宫)的前三名,玩家完后可以点击英雄榜自行查看。
PersonInMaze对象调用setAtMazePoint(MazePoint)方法设置自己所在的“点”,即设置属性point的对象引用。
PersonInMaze对象电影getAtMazePoint()返回自己所在的“点”,即返回point对象的引用。
PersonInMaze对象调用painTComponent(Graphics)方法绘制图形,即绘制tool对象所获得的Image对象。
(5)玩家可以清除英雄榜并且重新载入游戏。
开发环境
Eclipse
3
1.系统的总体设计
在设计走迷宫时,需要编写6个java源文件:、、、、、、、和。走迷宫除了上述6个java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JmenuItem和File等类。走迷宫所用到的一些重要的类以及之间的组合关系如下图所示:
图4-3 走迷宫者图像
2.类的主要成员变量和方法
成员变量:
point是MazePoint型对象,用来确定PersonInMaze对象在Maze所创建的迷宫容器的位置。
tool是Toolkit对象,用来获得Inage对象。
方法:
MazePoint()是构造方法,负责完成MazePoint对象的初始化。
main(String[])方法是程序运行的入口方法。
3. 主界面效果图如下图所示
图4-1 主界面图
4.2
1.成员变量
mazeFile是File类声明的对象,用来存放迷宫文件的引用。
mazePoint是MazePoint类型的二位数组,其单元为MazePoint类创建的对象,用来确定“墙”和“路”以及“走迷宫者”的位置,即确定WallOrRoad以及PersonInMaze对象在maze对象中的位置。
(4)当用户开始玩游戏时想重新开始,用户可以随时单击界面上下方图片位置提供的按钮,重新开始走迷宫。
(5)本程序还具有音乐播放的功能,当用户成功移动走迷宫者后,程序播放简短的一声音乐。
(6)本迷宫程序增加“英雄榜”功能既排名功能,当用户成功将迷宫中的走迷宫者从入口移动到出口,如果成绩能排进前三名,就弹出一个对话框,将用户的成绩保存到“英雄榜”中,并且可以查看“英雄榜”以及删除“英雄榜”。
图3-3 活动流程图
4系统详细设计
系统的主界面设计
1.成员变量
maze是Maze类声明的对象,用来刻画迷宫,是MazeWindow类中最重要的成员之一。MazeWindow类根据迷宫文件,即根据该类中的mazeFile来创建maze对象。
bar是JMenuBar创建的菜单条,用来添加菜单。bar被放置在窗口的顶部。
相关文档
最新文档