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相关推荐

  1. java聊天系统总结报告_java聊天系统实训报告

    java聊天系统实训报告 郑州轻工业学院实 训 报 告实训名称: 即时聊天系统 姓 名: 王路超 院 (系): 软件学院 专业班级: java01 学 号: 621313530123 指导教师: 刘育 ...

  2. java 聊天室系统实训总结_Java聊天系统实训报告.doc

    Java聊天系统实训报告 一.实训目的: 1.理解C/S模式的软件系统结构,掌握网络编程的基本概念:2.了解Java 的多线程机制,掌握Java多线程技术的应用:3.熟练掌握基于TCP协议的Socke ...

  3. Java程序设计实训教程_Java程序设计实训教程--详细介绍

    第1章&nbsp&nbspJava语言基础 1.1&nbsp&nbsp背景知识 1.1.1&nbsp&nbspApplet与Application 1. ...

  4. Java课设对对碰_java课程设计实验报告

    1 一 实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念.程序设计的基本方法.语 法规则等方面加深理解, 打好程序设计. 开发软件的良好基础.在上机实验中,提高学生对 Java 语言各部 ...

  5. java综合实训报告_java综合实验报告1.doc

    java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...

  6. java mysql实训报告_java数据库实训总结.doc

    java数据库实训总结 java数据库实训总结 篇一:JAVA数据库学生管理系统实训报告 实训报告 实训名称: 学生成绩管理系统实训 系 (部):专业班级:网络L1301学生姓名:刘鑫 学 号指导教师 ...

  7. java员工管理系统实验报告_java员工管理系统实验报告怎么写?员工管理系统的风险控制有哪些?...

    员工管理系统在设计好后,要先试运行,实验成功后,才可以使用的.那大家知道java员工管理系统实验报告怎么写吗?还有,员工管理系统的风险控制有哪些呢?下面就让小编带大家一起来了解一下吧. java员工管 ...

  8. java数组实验报告_Java实验一实验报告

    实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<><>课程 ...

  9. java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc

    java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...

最新文章

  1. 《java多线程编程实战指南 核心篇》读书笔记一
  2. [2018/11/14]思考
  3. microsoftonenote_Microsoft
  4. 企业微服务:搭建环境
  5. 【地理信息系统GIS】教案(七章全)第一章:地理信息系统概述
  6. 计算机科学与技术mobi,080901-计算机科学和技术.PDF
  7. android图片浏览远近,快图浏览编辑图片方法介绍_怎么编辑图片_3DM手游
  8. Apache Benchmark(简称ab)压力测试安装与解释
  9. 在Silverlight中使用DynamicMethod(动态方法)
  10. Unity制作简单动画效果
  11. 博客空间自动互踩刷人气
  12. Jmeter怎么连接数据库
  13. 广播系统可以跨服务器控制吗,数字广播系统技术参数和要求.doc
  14. Android自定义Dialog的Match_parent无效问题解决
  15. 判断Linux环境是否装了NCCL,安装cuDNN和NCCL指南
  16. 全国地区+邮编的数据库脚本
  17. python中的数据分析库有哪些_五大常用数据科学Python库
  18. 使用css3 filter属性实现图片毛玻璃效果
  19. 计算机动作路径教案,《引导路径动画》教案
  20. Cg插画需要学习什么,难不难?

热门文章

  1. 《linux c编程指南》学习手记1
  2. qt project settings被禁用解决方案
  3. Springboot 配置类( @Configuration) 不能使用@Value注解从application.propertyes中加载值以及Environment为null解决方案
  4. 网易研选大数据架构演进
  5. shapenet各类数据(转载)
  6. EMNLP杰出论文 | 当注意力遇到RNN,五倍以上训练加速!
  7. 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?
  8. Tiktok的红利期,你要加入吗?
  9. 跨境电商ERP系统怎么使用?
  10. php采集扩展,PHP扩展生成器