java迷宫实训报告_Java综合实训报告-迷宫.doc
Java综合实训报告-迷宫
目 录
1.需求分析2
2.概要设计2
2.1功能图3
2.2系统流程图4
3.详细设计4
3.1类关系图5
3.2类设计图5
类Maze5
类MazeGrid6
3.3主要功能详细顺序图8
4.主要程序实现8
5.测试与结果16
6.心得体会19
参考文献20
迷宫游戏的设计与实现
需求分析
基于Java实现的简易迷宫系统,通过判断所走路径是wall还是road,来实现从入口到出口的整个流程。运行该程序,可以选择默认状态下自动生成迷宫,亦可选择重新生成迷宫,通过自动寻找行走路径,最终显示当前迷宫运行时间。
概要设计
该程序设计是解决迷宫求解的问题,从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止。为了保证在任何位置上都能沿原路退回,显然需要用一个后进先出的结构来保存从入口到当前位置的路径。因此,在求迷宫通路的算法中要应用“栈”的思想假设“当前位置”指的是“在搜索过程中的某一时刻所在图中某个方块位置”,则求迷宫中一条路径的算法的基本思想是:若当前位置“可通”,则纳入“当前路径”,并继续朝“下一位置”探索,即切换“下一位置”为“当前位置”,如此重复直至到达出口;若当前位置“不可通”,则应顺着“来向”退回到“前一通道块”,然后朝着除“来向”之外的其他方向继续探索;若该通道块的四周4个方块均“不可通”,则应从“当前路径”上删除该通道块。所谓“下一位置”指的是当前位置四周4个方向(东、南、西、北)上相邻的方块。假设以栈S记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。由此,“纳入路径”的操作即为“当前位置入栈””;“从当前路径上删除前一通道块”的操作即为“出栈”。
功能图
系统流程图
详细设计
在设计迷宫游戏时,编写了两个Java源文件Maze.java和MazeGrid.java。Maze.java中main类实现弹出游戏耗时窗口功能,createMap类用于实现生成迷宫功能,goMaze类用于实现走迷宫功能,refreshMap类实现刷新迷宫地图功能;MazeGrid.java实现确定正确行走路径的功能。
类关系图
类设计图
类Maze
模块名称Maze功能描述实现迷宫游戏
接口与属性createMap()
/*
Function:生成迷宫
InPut: 无
OutPut: 生成迷宫
Return:空
*/
goMap()
/*
Function:走迷宫
InPut: 无
OutPut:无
Return:空
*/
refreshMap()
/*
Function:刷新迷宫
InPut: 选择重新生成迷宫
OutPut:生成新迷宫
Return:空
*/
main()
/*
Function:输出成功走出当前迷宫的耗时
InPut: 无
OutPut:输出耗时
Return:空
*/类MazeGrid
模块名称MazeGrid功能描述确定迷宫所走路径
接口与属性isMark()
/*
Function:判断是否通路
InPut: 无
OutPut: 无
Return:TRUE或FALSE
*/
setMark()
/*
Function:设置是否通路
InPut: 无
OutPut: 无
Return:TRUE或FALSE
*/
Paint()
/*
Function:确定路径
InPut: 无
OutPut: 无
Return:路径
/*
isVisited()
/*
Function:判断是否访问过
InPut: 无
OutPut: 无
Return:0或1
*/
setMark()
/*
Function:设置是否访问过
InPut: 无
OutPut: 无
Return:0或1
*/
isPersonCome()
/*
Function:判断是否访已经走过
InPut: 无
OutPut: 无
Return:0或1
*/
setPersonCome ()
/*
Function:设置走过
InPut: 无
OutPut: 无
Return:1
*/
isStart()
/*
Function:判断是否为入口
InPut: 无
OutPut: 无
Return:0或1
*/
setStart ()
/*
Function:设置为入口
InPut: 无
OutPut: 无
Return:1
*/
isEnd()
/*
Function:判断是否为出口
InPut: 无
OutPut: 无
Return:0或1
*/
setEnd ()
/*
Function:设置为出口
InPut: 无
OutPut: 无
Return:1
*/
主要功能详细顺序图
java迷宫实训报告_Java综合实训报告-迷宫.doc相关推荐
- java聊天系统总结报告_java聊天系统实训报告
java聊天系统实训报告 郑州轻工业学院实 训 报 告实训名称: 即时聊天系统 姓 名: 王路超 院 (系): 软件学院 专业班级: java01 学 号: 621313530123 指导教师: 刘育 ...
- java 聊天室系统实训总结_Java聊天系统实训报告.doc
Java聊天系统实训报告 一.实训目的: 1.理解C/S模式的软件系统结构,掌握网络编程的基本概念:2.了解Java 的多线程机制,掌握Java多线程技术的应用:3.熟练掌握基于TCP协议的Socke ...
- Java程序设计实训教程_Java程序设计实训教程--详细介绍
第1章  Java语言基础 1.1  背景知识 1.1.1  Applet与Application 1. ...
- Java课设对对碰_java课程设计实验报告
1 一 实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念.程序设计的基本方法.语 法规则等方面加深理解, 打好程序设计. 开发软件的良好基础.在上机实验中,提高学生对 Java 语言各部 ...
- java综合实训报告_java综合实验报告1.doc
java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...
- java mysql实训报告_java数据库实训总结.doc
java数据库实训总结 java数据库实训总结 篇一:JAVA数据库学生管理系统实训报告 实训报告 实训名称: 学生成绩管理系统实训 系 (部):专业班级:网络L1301学生姓名:刘鑫 学 号指导教师 ...
- java员工管理系统实验报告_java员工管理系统实验报告怎么写?员工管理系统的风险控制有哪些?...
员工管理系统在设计好后,要先试运行,实验成功后,才可以使用的.那大家知道java员工管理系统实验报告怎么写吗?还有,员工管理系统的风险控制有哪些呢?下面就让小编带大家一起来了解一下吧. java员工管 ...
- java数组实验报告_Java实验一实验报告
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<><>课程 ...
- java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc
java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...
最新文章
- 《java多线程编程实战指南 核心篇》读书笔记一
- [2018/11/14]思考
- microsoftonenote_Microsoft
- 企业微服务:搭建环境
- 【地理信息系统GIS】教案(七章全)第一章:地理信息系统概述
- 计算机科学与技术mobi,080901-计算机科学和技术.PDF
- android图片浏览远近,快图浏览编辑图片方法介绍_怎么编辑图片_3DM手游
- Apache Benchmark(简称ab)压力测试安装与解释
- 在Silverlight中使用DynamicMethod(动态方法)
- Unity制作简单动画效果
- 博客空间自动互踩刷人气
- Jmeter怎么连接数据库
- 广播系统可以跨服务器控制吗,数字广播系统技术参数和要求.doc
- Android自定义Dialog的Match_parent无效问题解决
- 判断Linux环境是否装了NCCL,安装cuDNN和NCCL指南
- 全国地区+邮编的数据库脚本
- python中的数据分析库有哪些_五大常用数据科学Python库
- 使用css3 filter属性实现图片毛玻璃效果
- 计算机动作路径教案,《引导路径动画》教案
- Cg插画需要学习什么,难不难?
热门文章
- 《linux c编程指南》学习手记1
- qt project settings被禁用解决方案
- Springboot 配置类( @Configuration) 不能使用@Value注解从application.propertyes中加载值以及Environment为null解决方案
- 网易研选大数据架构演进
- shapenet各类数据(转载)
- EMNLP杰出论文 | 当注意力遇到RNN,五倍以上训练加速!
- 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?
- Tiktok的红利期,你要加入吗?
- 跨境电商ERP系统怎么使用?
- php采集扩展,PHP扩展生成器