存档

文章标签 ‘迷宫’

C#以不同算法写的迷宫算法

2009年12月30日 没有评论

简单文字描述如下:

设定当前位置的初值为入口位置;

do{

若当前位置可通,

则{将当前位置插入栈顶; // 纳入路径

若该位置是出口位置,则结束;

// 求得路径存放在栈中

否则切换当前位置的东邻方块为新的当前位置;

否则
{

若栈不空且栈顶位置尚有其他方向未被探索,

则设定新的当前位置为: 沿顺时针方向旋转

找到的栈顶位置的下一相邻块;

若栈不空但栈顶位置的四周均不可通,

则{ 删去栈顶位置; // 从路径中删去该通道块

若栈不空,则重新测试新的栈顶位置,

直至找到一个可通的相邻块或出栈至栈空;

}while (栈不空)
阅读全文...

分类: CShap 标签: ,

天草迷宫独特算法

2009年12月29日 没有评论

代码下载
原文地址

因为实验要求写迷宫算法的缘故,不得不研究一下这个看似没用的东西。实验要求上有提示算法思路,还有伪代码(本人灰常反感。。。代码都给了,当我白痴啊?)。老师上课也讲了思路,但是我一下子没听懂。然后就不听了。伪代码也懒得去看。自己想吧。书上给的算法是堆栈,递归,路过标记,死路回头,当然少不了几个结构。

下面说说我的算法,我的大思路是:把通路留住把死路消灭。可以想象一下,0代表通路,1代表墙。那既然通路都给我们了,我们只需将死路灭掉,当然,如果迷宫本来设计就走不通的话。那只会剩下出入口。
阅读全文...

分类: CShap 标签: , ,

一个C#的迷宫生成算法,采用深度优先遍历拆墙

2009年12月29日 没有评论

因为最近要用C#开发一个走迷宫的小游戏,所以需要编写一个随机生成迷宫的组件,但是查阅了网上的很多相关资料,都不是很全。只知道最好的方法是采用图的遍历来做,但是依然不得要领。后来无意中看到了CodeZone上面的Generating Maze using C# and .NET(By Mike Gold September 25, 2002 ),才一下子明白过来,思路也清晰了。

这是Mike的程序的UML图——
阅读全文...