• 随机Prim法创建随机迷宫(C#实现)


    因为这两天想参加一个比赛,所以就在上网找素材,刚好看到了迷宫生成,就决定拿这个开刀了。

    参考的原文地址为(来源页面

    源地址中是使用AS实现的,没学过AS,所以直接不会运行,于是就自己根据原文的概念进行了模(chao)仿(xi)。

    废话说完了,现在来说一下随机Prim法的原理:

    1.建立两个数组,一个是用于存储地图的二维数组α,另一个是用于存储待处理的墙的数组β。

    2.将α的所有方格全部初始化为墙。

    3.选定起点,并将该位置的墙变为路,将其四周的四块置入β数组中(出界的直接筛掉,就不说了)。

    4.当β数组不为空时,循环以下步骤

    1)从β数组中随机选择一块,暂且叫他A。

    2)遍历该方块四周,并选定其中的某一块为路的方块,暂且叫他B。

    3)判断相对于A,在B的对侧的方块C是否为墙(假如B在A左侧,就判定A右边的方块;B在A上方,就判定A下方的方块;以此类推……),若为墙,则:

    ①将A、C均置为路。

    ②将C周围是墙的所有方块,均置入待β数组中。

    4)将A从β数组中去掉。

    执行完之后迷宫就生成好啦~

    目前我还是只完成了任务目标的10%不到,现在这个版本还是只能生成迷宫而已,而且代码也没有足够的优化。后续慢慢更新(在不影响比赛的前提下),直到整个工程结束。

    源码地址:

    http://pan.baidu.com/share/link?shareid=4019441680&uk=756504557

  • 相关阅读:
    在命令提示符中使用antlr
    Migrating to Rails 2.0.2
    从AJAX IN ACTION书中学用 RSS READER
    maple download url
    搜索
    发邀请在线RoR开发与部署环境www.heroku.com
    if can't use ruby in command line
    查询表中某字段有重复记录的个数
    WPF窗体自适应分辨率
    《思考,快与慢》
  • 原文地址:https://www.cnblogs.com/myKennel/p/4018113.html
Copyright © 2020-2023  润新知