java课设走迷宫含代码.docx
《java课设走迷宫含代码.docx》由会员分享,可在线阅读,更多相关《java课设走迷宫含代码.docx(12页珍藏版)》请在冰豆网上搜索。
java课设走迷宫含代码
1.设计目的
课程设计的目的
2.总体设计
设计思路
设计方法
3.关键技术
4.程序流程
5.主要源代码
6.运行结果及结论7.参考文献
1.设计目的
课程设计的目的
随着科技进步,时代发展,计算机走进了大家的生活。
计算机程序强大的功能为使用者提供服务,编程语言也变得越来越流行。
Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,熟练应用面向对象的思想和设计方法解决实际问题的能力,也是为了增加同学们娱乐游戏选择而开发了一个适合学生的,能提升思考力的迷宫冒险游戏,这既锻炼了动手能力,还能进行消遣娱乐,可谓一举两得。
2.总体设计设计思路
根据对游戏系统进行的需求分析,本系统将分为6个模块:
分别是迷宫
主界面模块、记时设计模块、迷宫设计模块、道路和障碍设计模块、动漫冒险者设计模块、出入口设计模块。
实现的功能有:
(1)迷宫的选择
玩家可以根据自身需求来进行选择简单迷宫、中等迷宫、难度迷宫三类中选择一类迷宫进行游戏。
(2)选择道路和障碍的图像
玩家可以根据个人喜好对迷宫中的道路和障碍的图片进行选择,但是图片的格式有规定,必须是“jpg”或“gif”格式的。
(3)游戏记时
当玩家控制迷宫中的动漫人物进行游戏时,计时器就开始进行记时,直
到动漫人物到达出口时,记时结束,并在屏幕上显示游戏用时。
(4)开始游戏
玩家将鼠标移动至迷宫中的动漫冒险者,即可看到“单击我然后按键盘
方向键”,单击后,游戏开始。
玩家即可通过键盘上的方向键进行游戏。
(5)游戏结束
玩家控制动漫冒险者移动至迷宫地图的出口处时,游戏的计时器停止计时,并弹出信息框“恭喜您通关了”,游戏结束
(6)冒险脚步声
玩家单击动漫冒险者后,便可以用键盘方向键进行控制。
动漫冒险者每移动一步便会发出一声“嘟”的响声。
(7)重新开始
玩家可以根据个人对自己通关时间长短的满意程度选择再次挑战,单击
“重新开始”即可。
(8)计时界面位置
利用边界式布局管理器BorderLayout将计时界面置于上方。
(9)再次挑战界面位置
利用边界式布局管理器BorderLayout将再次挑战界面置于下方。
图J迷宫冒险系统6大模块图
设计方法
(1)迷宫冒险系统主界面模块
迷宫冒险系统主界面模块包括和两个文件。
MazeWindow是迷宫冒险系
统的主运行类,其中有运行整个程序的main方法,该文件生成了Maze类
的一个实例,从而生成了迷宫冒险系统的界面。
MazeWindoW^继承自JFrame类,以ActionListener为接口实现了事件侦听的接口,它有一个不带参数的构造方法MazeWindow(),用来生成MazeWindoW勺实例。
MazeWindow类将所有的功能集中到菜单栏中,并通过调用其他模块来实现迷宫冒险系统的各个功能。
(2)记时设计模块
记时设计模块主要由共1个文件组成。
HandleMove类继承自JPanel类,
以ActionListener为接口实现事件的侦听的接口。
该模块利用了一个2维
数组来进行实现,并对计时显示的字体、背景色、显示位置进行设计。
该模块定义了一个无参返回值的变量SpendTime利用SpendTime这个变量来对记时的开始触发源和记时的结束触发源。
图计时流程图
(3)迷宫设计模块
迷宫设计模块主要由2个2维数组组成,它们组成了主界面中“选择迷宫”菜单的内容,其中包括简单迷宫、中等迷宫、难度迷宫三大类。
该模块的类继承自JLayeredPane类,主要通过2个2维数组来实现。
并且对迷宫中的道路和障碍的插入图片格式进行了要求。
该模块使用try和catch来捕获和处理异常。
当迷宫地图不可用时则弹出对话框“无效的迷宫文件”。
(4)道路和障碍设计模块系统
道路和障碍设计模块主要由这个文件组成,这个文件组成了主界面中的迷宫地图中的道路和障碍的内容。
(5)动漫冒险者设计模块
动漫冒险者设计模块主要是对迷宫地图中处于入口处的动漫冒险玩家进行设计。
该模块利用语句使鼠标箭头移动到动漫冒险者上时显示文字“单击我,然后按键盘方向键”,并为冒险者的图片格式、长度、宽带、初始位置等等进行进一步的设计,让动漫冒险者更加生动。
(6)出入口设计模块
出入口设计模块主要是定义了出口与入口以及当动漫冒险者处于这两个位置时的状态和事件的链接。
3.关键技术
在设计走迷宫小游戏时,编写了6个JAVA源文件:
、、、、
4.程序流程
图迷宫游戏流程图
5.主要源代码
import.*;
import.*;
import.*;
implements
importclassMazeWindowextendsJFrameActionListener{
Mazemaze;
JMenuBarbar;
JMenumenuChoice,menuImage;
JMenuItemwallImage,roadImage,defaultImage;
FilemazeFile,wallImageFile,roadImageFile;
JButtonrenew;
MazeWindow(){
wallImageFile=newFile("");
roadImageFile=newFile("");
bar=newJMenuBar();
menuChoice=newJMenu("选择迷宫");
Filedir=newFile(".");
Filefile[]=(newFilenameFilter(){
boolean
public
accept(Filedir,Stringname){
return("maze");
}
});
for(inti=0;i<;i++)
item=new
{JMenuItem
JMenuItem(file[i].getName());
(this);
(item);
}
mazeFile=newFile(file[0].getName());
init();
menuImage=newJMenu("选择墙和路的图像(JPG,GIF)");
墙的图像");
路的图像");
墙和路的默认图像");
wallImage=newJMenuItem("roadImage=newJMenuItem("defaultImage=newJMenuItem("(wallImage);
(roadImage);
(defaultImage);
(menuChoice);
(menuImage);setJMenuBar(bar);
(this);
(this);
(this);
renew=newJButton("重新开始");
(this);
add(maze,;
add(renew,;
setVisible(true);setBounds(60,60,510,480);validate();
setDefaultCloseOperation;
}
publicvoidinit(){
if(maze!
=null){
remove(maze);remove());
}
maze=newMaze();
(wallImageFile);
(roadImageFile);
(mazeFile);
add(maze,;
add(),;
validate();
}
publicvoidactionPerformed(ActionEvente){
if()==roadImage){
JFileChooserchooser=newJFileChooser();
new
FileNameExtensionFilterfilter
FileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");
(filter);
intstate=(null);
Filefile=();
if(file!
=null&&state=={
roadImageFile=file;
(roadImageFile);
}
}
elseif()==wallImage){
JFileChooserchooser=newJFileChooser();
new
FileNameExtensionFilterfilter
FileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");
(filter);
intstate=(null);
Filefile=();
if(file!
=null&&state=={
wallImageFile=file;
(wallImageFile);
elseif()==defaultImage){
wallImageFile=newFile("");
roadImageFile=newFile("");
(wallImageFile);
(roadImageFile);
}
elseif()==renew){
init();
}
else{
JMenuItemitem=(JMenuItem)();
mazeFile=newFile());
init();
publicstaticvoidmain(Stringargs[]){
newMazeWindow();
}
}
6.运行结果及结论
在开发环境为JCreator的电脑上编写java程序,利用java程序实现迷宫冒险的运作。
程序包含、、、、、六个java源文件。
其中MazeWindow为程序的主类,贯穿始终,通过调用其他模块功能来实现整个迷宫冒险小游
戏的全部功能,是游戏安全运行。
程序进过检查修改无误后运行得到如下运行结果。
运行结果示意图
7.参考文献1】董小园Java面向对象程序设计清华大学出版社,2011年6月第1版
2】刘升华Java从入门到实践[M].北京:
清华大学出版社2009
3】陈国君Java2设计基础[M].北京:
清华大学出版社20094】朱喜福Java程序设计[M].北京:
人民邮电出版社2005
5】饶一梅Java语言程序设计[M].北京:
人民邮电出版社2009
成绩评定表
学生姓名
班级学号
专业
课程设计题目
语组长签字:
成绩
日期
2014年月日
课程设计任务书
学院
信息学院
专业
学生姓名
班级学号
课程设计题目
基于Java的走迷宫游戏软件设计
实践教学要求与任务
采用java技术设计走迷宫游戏软件,游戏的结果是让走迷宫者从迷
宫的入口处走到迷宫的出口处。
设计要求如下:
(1)程序根据文本文件生成迷宫,这些文本文件称作迷宫文件。
迷宫文件的扩展名为.maze,其中的文本内容有着特殊的组织结构:
任意两行文本所含有的自符个数必须相同,而且字符只可以是“*”、“#”、“o”或“1、迷宫文件中的“*”和“#”分别代表迷宫的入口和出口,“0”和“1”分别代表迷宫中的“路”和“墙”。
aze文件
1*
01
11
01
1111111#11
(2)用户可以通过界面上提供的惨淡选项,选择“迷宫文件”来生成对应的“迷宫”。
(3)用户可以通过界面上提供的菜单选项,选择迷宫中的“墙”和“路”
的外观图像。
(4)用户可以通过随时单击界面上提供的按钮,重新开始走迷吕。
工作计划与进度安排:
第19周:
布置课程设计任务,查阅资料,分组设计,程序调试。
第20周:
程序调试,编写课程设计报告,验收,答辩。
指导教师:
2014年月日
专业负责人:
2014年月日
学院教学副院长:
2014年月日