实验要求:

1、迷宫游戏是非常经典的游戏,在该题中要求随机生成一个迷宫,并求解迷宫;

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

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

程序设计工具:

  1、语言:JAVA
  2、开发环境:IntelliJ IDEA Community Edition 2020

实验设计准备:

1、A*寻路算法:

一个比较好的参考链接如下:
A*寻路算法参考链接
但是有点整不明白这个算法到底怎么实现,有点细节感觉太麻烦了,既然不用考虑效率之类的问题,我就还是觉得用二叉树的深度优先遍历的逆推来做

2、二叉树的深度优先遍历的逆推:

二叉树的深度优先遍历的逆推主要分为:

  1. 生成树阶段:从起点向所有可能的方向生长出所有的树枝。起点作为根节点;
  2. 保存相关信息和标识位,将每个点的上一个父节点记忆住;
  3. 使用阶段:当我们查询根节点到某点路径,就是查询某点到根节点的路径,只要查出这个节点的父节点,由于父节点的唯一性,可以最后查到根节点位置,我们描绘出路径信息就找出了通路,

https://blog.csdn.net/weixin_43790276/article/details/105473527

2、基本图形界面设计:

1、awt包的主要类,如事件类(event.KeyAdapter、event.KeyEvent)、Graphics类。

  • 事件类主要提供了按键的绑定和监控的功能;
  • Graphics类最主要提供了一些基本几何图形的绘制方法;

2、util包Stack类和Random类
- util包链接
java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。

  • util包的主要类的详解链接

  • Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。

  • 参考的Stack库的学习博文:

3、swing包的JFrame组件、JPanel组件、JOptionPane组件;

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐