zoukankan      html  css  js  c++  java
  • 随机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

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/myKennel/p/4018113.html
Copyright © 2011-2022 走看看