迷宫生成算法和迷宫寻路算法
大学二年级的时候,作为对栈这个数据结构的复习,我制作了一个迷宫生成算法的小程序,当时反响十分好,过了几天我又用自己已经学的DirectX技术制作了DirectX版的程序。这几天回过头看自己的文章,感觉温故而知不足。温故是因为唤醒了我对迷宫算法的回忆,知不足是因为我那个程序一点儿也没有按照面向对象的思路去做。还是那一套C的思想。
我打算重新制作迷宫程序。这次和以前不同,我学习了C++、STL、Lua、OpenGL,还有很多很多对游戏开发很实用的知识。因此我打算将自己的迷宫重新写一遍,使用面向对象的思想。
大家先看看演示程序吧。演示程序的下载地址在这里。
放几张截图出来,给大家一点视觉冲击!
怎么样?眼花缭乱了吧。其实这些都归功于我写的Maze类。
这个Maze类负责所有与迷宫有关的操作,包括自动产生迷宫和迷宫自动寻路算法都是它的方法。一般来说,迷宫的属性有多少行和多少列,以及各个小格子的属性等等。下面是Maze类的声明:
class Maze { public: Maze( void ); ~Maze( void ); Maze( unsigned short column, unsigned short row ); void Init( unsigned short column = 12, unsigned short row = 12 ); void SetCallback( IMazeCallback* pCallback ); void Draw( void ); void DrawPath( void ); void RandomCreate( void );