云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 迷宫算法设计 - 图文

迷宫算法设计 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/1/10 3:45:39

《数据结构与算法设计》

课程设计任务书

题 目 学生姓名 迷宫设计 学号 专业班级 【问题描述】 在迷宫中求从入口到出口的一条简单路径。迷宫可用方块来表示, 每个方块或者是通道或者是墙。 “迷宫求解”这个经典的问题,应用栈这种数据结构设计一个方案, 并在图形界面上实现从入口到出口的一条简单路径,设计这个游戏可以加强自己的编程能力,自己找通路时还可以加强观察能力。 【软件功能】 1、求解迷宫通路的图形界面演示程序,根据用户界面提示自定义迷宫。 2、根据用户界面提示,用键盘输入,Home键设置迷宫起点,End键设终点,上下左右箭头键移动,Enter键添加墙,Del键删除墙,完成后按F9键演示,演示完毕后可F5刷新题图,重新对地图的起点、终点、障碍进行设置,Esc键退出; 3、在找迷宫通路的过程中,演示查找的过程并查找成功的一条路径。 4、用户可以通过界面上提供的菜单选项,选择“A*算法求最短路径”演示求解迷宫最短路径。 【算法思想】 1、以一个长方阵表示迷宫,采用数组对迷宫信息进行存储,数组的元素的值表示迷宫对应位置的内容。0表示迷宫对应位置可通过;1表示迷宫对应位置为墙;2表示迷宫对应位置为已经走过的足迹3,表示迷宫对应位置是从栈中弹出的点,并且不能再次通过;4表示迷宫对应位置为起点,保证起点不可通过。 2.在设计走迷宫算法的过程中,主要是利用栈对路径信息进行存储,类Node,定义了栈中存储的节点元素的类型,栈中的元素采用链式存储的结构。 3、采用A*算法,找到起点到终点的最短路径; 4、采用回溯算法控制并绘制人物在迷宫图形界面窗口中的位置。 5、用java编程语言,有简单、美观的图形界面。 【提交成果】 1.“《数据结构与算法设计》课程设计任务书”一份,打印装袋; 2.“《数据结构与算法设计》课程设计报告”一份,打印装袋; 3、上面两项内容的word文档,通过电子邮件交到指导教师。 2012 年 6 月18日 至 2012 年7月 1 日 2012年 6 月 18 日 2012年 6 月 18 日 2012 年 6 月 18 日 设 计 内 容 与 要 求 起止时间 指导教师签名 系(教研室)主任签名 学生签名

数据结构与算法设计课程设计

专业 班级 学号

姓名(签名) 完成日期 指导教师(签名)

1、程序设计说明书

【设计题目】迷宫设计 【问题描述】

在迷宫中求从入口到出口的一条简单路径。迷宫可用方块来表示, 每个方块或者是通道或者是墙。 “迷宫求解”这个经典的问题,应用栈这种数据结构设计一个方案, 并在图形界面上实现从入口到出口的一条简单路径,设计这个游戏可以加强自己的编程能力,自己找通路时还可以加强观察能力。

【软件功能】

1、求解迷宫通路的图形界面演示程序,根据用户界面提示自定义迷宫。

2、根据用户界面提示,用键盘输入,Home键设置迷宫起点,End键设终点,上下左右箭 头 键移动,Enter键添加墙,Del键删除墙,完成后按F9键演示,演示完毕后可F5刷新题图,重新对地图的起点、终点、障碍进行设置,Esc键退出;

3、在找迷宫通路的过程中,演示查找的过程并查找成功的一条路径。

4、用户可以通过界面上提供的菜单选项,选择“A*算法求最短路径”演示求解迷宫最短路径。

【算法思想】

1、以一个长方阵表示迷宫,采用数组对迷宫信息进行存储,数组中的元素的值表示迷宫对应位置的内容。0表示迷宫对应位置可通过;1表示迷宫对应位置为墙;2表示迷宫对应位置为已经走过的足迹3,表示迷宫对应位置是从栈中弹出的点,并且不能再次通过;4表示迷宫对应位置为起点,保证起点不可通过。

2、在设计走迷宫算法的过程中,主要是利用栈对路径信息进行存储,类Node,定义了栈中存储的节点元素的类型,栈中的元素采用链式存储的结构。 3、采用A*算法,找到起点到终点的最短路径;

4、采用回溯算法控制并绘制人物在迷宫图形界面窗口中的位置。 5、用java编程语言,有简单、美观的图形界面。

【逻辑结构设计】

运行程序,进入设置迷宫大小界面,输入行和列的值点击生成迷宫按钮进入迷宫自定义界面,根据操作菜单中的帮助选项,用键盘上的按键进行自定义操作(设置迷宫的起点、终点和墙)按F9或者操作菜单中的A*算法寻找最短路径选项即可实现对应的通路。

【存储结构设计】

该程序主要采用数组对迷宫信息进行存储,数组的元素的值表示迷宫对应位置的内容,主要是利用栈对路径信息进行存储,类Node,定义了栈中存储的节点元素的类型,栈中的元素采用链式存储的结构。 栈:

public class Stack {

private Node top;//节点为Node类型 private int size;//栈中节点数 public Stack(){//构造方法

public void push(Object o)//进栈 public void pop()//出栈

public boolean isEmpty()//判断栈是否为空

public Node(Object o,Node n){//Node类构造方法 Position类中;

public class Position

public int x, y;// x代表图形界面的横坐标, y代表图形界面的纵坐标 public Position(int x, int y)//构造方法

public boolean equals(Object o)// 判断当前位置的o对象是否和调用该方法的Position类对象的内容相等 MazeGUI类中

public class MazeGUI //迷宫GUI

final Object obj=new Object();//锁对象 int row=0,col=0;//设置值迷宫图形界面的大小

Image offScreen = null;// 双缓冲技术防止屏幕闪烁 Maze maze;//构建迷宫参数

Rollback rollback;// 求解迷宫,并绘制人物在迷宫图形界面中的位置。

Thread t1 = new Thread(new SolveThread(),\);//寻路进程,在初始化Thread类时,把目标对象传递给这个线程实例 Thread t2 = new Thread(new AThread(),\);

public void paint(Graphics g){//调用绘制地图的draw()方法和绘制人物位置的draw()方法

public void update(Graphics g)//双缓冲防止屏幕闪烁 public MazeGUI(int row,int col)//初始化窗体

private class SolveThread implements Runnable{//提供一个实现借口Runnable接口的类的实例,作为一个线程的目标对象

private class AThread implements Runnable//展示用A*算法求解迷宫过程的线程

【基本操作设计】

1、 运行程序,进入设置迷宫大小界面,输入行和列的值点击生成迷宫按钮

进入迷宫自定义界面,

2、 根据操作菜单中的帮助选项,用键盘上的按键进行自定义操作(设置迷

宫的起点、终点和墙)按F9或者操作菜单中的A*算法寻找最短路径选项即可实现对应的通路。

【模块流程图】

模块划分图:

设置迷宫大小 主界面 文件 操作 退出 刷新地图 A*算法最短路 帮 助

搜索更多关于: 迷宫算法设计 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

《数据结构与算法设计》 课程设计任务书 题 目 学生姓名 迷宫设计 学号 专业班级 【问题描述】 在迷宫中求从入口到出口的一条简单路径。迷宫可用方块来表示, 每个方块或者是通道或者是墙。 “迷宫求解”这个经典的问题,应用栈这种数据结构设计一个方案, 并在图形界面上实现从入口到出口的一条简单路径,设计这个游戏可以加强自己的编程能力,自己找通路时还可以加强观察能力。 【软件功能】 1、求解迷宫通路的图形界面演示程序,根据用户界面提示自定义迷宫。 2、根据用户界面提示,用键盘输入,Home键设置迷宫起点,End键设终点,上下左右箭头键移动,Enter键添加墙,Del键删除墙,完成后按F9键演示,演示完毕后可F5刷新题图,重新对地图的起点、终点、障碍进行设置,Esc键退出; 3、在找迷宫通路的过程中,演示查找的过程并查找成功的一条路径。 4、用户可以通过界面

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com