算法设计迷宫java_数据结构课程设计迷宫算法的实现_java.doc

本文档详细介绍了使用Java AWT和SWING包实现的迷宫求解算法,包括图形用户界面设计,具备重置、搜寻路径和速度控制功能。程序能够找出一条从起点到终点的通路,但也提出了增加多条路径以提升迷宫难度的改进方案。
摘要由CSDN通过智能技术生成

数据结构课程设计迷宫算法的实现_java.doc

e41d5c21-3004-4b06-b642-2b362225d7671.gif

还剩

24页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,喜欢就下载吧,价低环保!

内容要点:

路5. 点击“Reset”可复位,即显示出原先的迷宫。6. 进度条可控制搜寻迷宫通路过程的速度。六、 存在的问题及解决方案本次数据结构课程设计,我设计的是迷宫通路求解。主要使用了 JAVA AWT 包和JAVA SWING 包。在求解迷宫算法的设计中,虽然能有一条通路,但路径唯一,可多设置几条路径使迷宫难度增加。1. 本程序的运行环境为 JAVA2. 进入演示程序后即显示图形用户界面:3. 单击“Move!”按钮即可开始走迷宫。迷宫运行后如图红色数字部分为其中一条通路。4. 点击“Clean”按钮可消除搜寻迷宫通路留下的痕迹,点击“Move ”可重新搜寻迷宫通已找到目标if (row rows - 1 || col cols - 1|| !map[row][col] || hasFound) {return;}// 找到了else if (goal.width == row && goal.height == col) {hasFound = true;stack_route = (Stack) stack.clone();}// 向四个方向探 测// 根据stack_hasWalk、stack_route 演示已经的路和正确的路private void printWalking() {stack_hasWalk.reverse();timer.setDelay(Main.speed);timer.start();}// 用于 timer中激发的事件,演示慢慢走路class ActionListener_Timer implements A * 设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。* * 下面用 递归实现 ,实际上就是用了图深度优先遍历 走过的格子直接标记为障碍 line 76: 入栈、入递归、出栈,为了保持现场,类似于Practice_2_3public class Walking {private int rows;private int cols;private DimensionhasFound = true;stack_route = (Stack) stack.clone();}// 向四个方向探 测 ,顺时钟else {// 标记已走过map[row][col] = false;stack_hasWalk.push(new Dimension(row, col));// 右stack.push(new Dimension(row, col + 1));spider(class ActionListener_Timer implements ActionListener {public void actionPerformed(ActionEvent e) {Dimension d;// 走完了if (stack_hasWalk.isEmpty()) {// 标记正确路 线while (!stack_route.isEmpty()) {d = (Dimensiprivate int cols;private Dimension goal;@SuppressWarnings("unused")private Dimension begin;// false 为障碍或已走 过private boolean map[][];private Stack stack, stack_hasWalk, stack_route;private boolean hasF}package hartech.kids.maze;import java.awt.BorderLayout;import java.awt.Color;import javax.swing.*;public class App

发表评论

暂无评论,赶快抢占沙发吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值