计算机软件实习项目三 —— 闯迷宫 (实验准备)

本文探讨了使用JAVA编程语言,结合深度优先搜索(DFS)和A*算法创建一个交互式迷宫游戏。玩家可通过键盘控制走迷宫,同时系统通过A*算法寻找最优路径。学习了DFS算法的基本概念和A*算法的原理及其在路径规划中的应用。
摘要由CSDN通过智能技术生成

目录

一、实验目的

二、算法学习

四、难点和解决方案

五、参考资料


一、实验目的

1.随机生成一个迷宫,并求解迷宫; 要求游戏支持玩家走迷宫,和系统走迷宫路径两种模式。

2.玩家走迷宫,通过键盘方向键控制,并在行走路径上留下痕迹;系统走迷宫路径要求基于A*算法实现,输出走迷宫的最优路径并显示。

3.设计交互友好的游戏图形界面。

二、算法学习

  • 深度优先算法(DFS)

       深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth             First Search。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的         相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等           等。一般用堆数据结构来辅助实现DFS算法。其过程简要来说是对每一个可能的分支路径深           入到不能再深入为止,而且每个节点只能访问一次。

  • A*算法

       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是许多其他问题           的常用启发式算法。A*算法作为Dijkstra算法的扩展,因其高效性而被广泛应用于寻路及图的         遍历。

       公式表示为: f(n)=g(n)+h(n),

       其中,
       f(n) 是从初始状态经由状态n到目标状态的代价估计,
       g(n) 是在状态空间中从初始状态到状态n的实际代价,
       h(n) 是从状态n到目标状态的最佳路径的估计代价(欧几里(斜边的长度)/曼哈顿距离(x的         距离+y的距离差))。
三、编程语言和平台

       编程语言:JAVA

       IntelliJ IDEA Community Edition 2021.2.1

四、难点和解决方案

  • 如何将方格填入数字。先制作迷宫数组,利用循环数定坐标,再画格子。
  • 广度优先和A*算法的编写。百度查找资料。

五、参考资料

深度广度优先算法、A*算法_八爪大头鱼-CSDN博客_a算法是广度优先算法吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值