• 大小: 168KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: C#
  • 标签: 迷宫  算法  寻路  

资源简介

C#实现4种经典迷宫生成算法和迷宫寻路算法,4种经典的迷宫生成算法是:(1)使用并查集算法生成,(2)使用深度优先算法生成,(3)使用随机算法生成,(4)使用递归切割算法,而迷宫寻路使用A*算法。

资源截图

代码片段和文件信息

using System;
using System.Collections;
using System.Collections.Generic;

namespace AlgorithmLib.Algorithm.Graph
{
    public class Graph
    {
        private Dictionary pool;
        private Dictionary> data;

        public Graph()
        {
            pool = new Dictionary();
            data = new Dictionary>();
        }

        public void AddUndirectedEdge(char u char v)
        {
            AddDirectedEdge(u v);
            AddDirectedEdge(v u);
        }

        public void AddDirectedEdge(char u char v)
        {
            GraphNode _u = NodeFromPool(u);
            GraphNode _v = NodeFromPool(v);

            if (data.ContainsKey(_u))
            {
                if (!data[_u].Contains(_v))
                {
                    data[_u].Add(_v);
                }
            }
            else
            {
                List list = new List();
                list.Add(_v);
                data.Add(_u list);
            }
        }

        private GraphNode NodeFromPool(char c)
        {
            if (!pool.ContainsKey(c))
            {
                GraphNode node = new GraphNode(c);
                pool.Add(c node);
            }
            return pool[c];
        }

        public IEnumerable V
        {
            get
            {
                foreach (KeyValuePair> kvp in data)
                {
                    yield return kvp.Key;
                }
            }
        }

        public GraphNode GetNode(char c)
        {
            return pool[c];
        }

        public List GetAdj(GraphNode node)
        {
            return data[node];
        }
    }

    public class GraphNode
    {
        public GraphNode(char n)
        {
            node = n;
            color = Colors.WHITE;
            d = int.MaxValue;
            f = int.MaxValue;
            pi = null;
        }

        public char node;
        public Colors color;
        public int d;
        public int f;
        public GraphNode pi;

        public override int GetHashCode()
        {
            return node.GetHashCode();
        }

        public override bool Equals(object obj)
        {
            if (obj is char)
            {
                return node.Equals(obj);
            }

            return node == (obj as GraphNode).node;
        }
    }

    public enum Colors
    {
        WHITE
        GRAY
        BLACK
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        368  2018-11-27 15:20  Debuger\App.xaml

     文件        303  2018-11-27 15:20  Debuger\App.xaml.cs

     文件      28672  2018-12-05 16:46  Debuger\bin\Debug\AlgorithmLib.dll

     文件     105984  2018-12-05 16:46  Debuger\bin\Debug\AlgorithmLib.pdb

     文件      11264  2018-12-05 16:46  Debuger\bin\Debug\Debuger.exe

     文件      24064  2018-12-05 16:46  Debuger\bin\Debug\Debuger.pdb

     文件      22688  2018-12-05 15:52  Debuger\bin\Debug\Debuger.vshost.exe

     文件        490  2012-06-06 02:06  Debuger\bin\Debug\Debuger.vshost.exe.manifest

     文件       4570  2018-11-27 15:21  Debuger\Debuger.csproj

     文件        958  2018-12-05 14:47  Debuger\MainWindow.xaml

     文件       3031  2018-12-05 16:46  Debuger\MainWindow.xaml.cs

     文件       2317  2018-12-05 16:46  Debuger\obj\Debug\App.g.cs

     文件       2317  2018-12-05 16:46  Debuger\obj\Debug\App.g.i.cs

     文件       1250  2018-12-05 15:52  Debuger\obj\Debug\Debuger.csproj.FileListAbsolute.txt

     文件        954  2018-12-05 15:50  Debuger\obj\Debug\Debuger.csproj.GenerateResource.Cache

     文件       6274  2018-12-05 16:46  Debuger\obj\Debug\Debuger.csprojResolveAssemblyReference.cache

     文件      11264  2018-12-05 16:46  Debuger\obj\Debug\Debuger.exe

     文件       1630  2018-12-05 16:46  Debuger\obj\Debug\Debuger.g.resources

     文件      24064  2018-12-05 16:46  Debuger\obj\Debug\Debuger.pdb

     文件        180  2018-12-05 16:46  Debuger\obj\Debug\Debuger.Properties.Resources.resources

     文件        263  2018-12-05 16:46  Debuger\obj\Debug\Debuger_MarkupCompile.cache

     文件        262  2018-12-05 15:50  Debuger\obj\Debug\Debuger_MarkupCompile.i.cache

     文件         80  2018-12-05 16:46  Debuger\obj\Debug\Debuger_MarkupCompile.lref

     文件       7073  2018-12-05 15:50  Debuger\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件       1402  2018-12-05 16:46  Debuger\obj\Debug\MainWindow.baml

     文件       4585  2018-12-05 16:46  Debuger\obj\Debug\MainWindow.g.cs

     文件       4585  2018-12-05 16:46  Debuger\obj\Debug\MainWindow.g.i.cs

     文件       2267  2018-11-27 15:20  Debuger\Properties\AssemblyInfo.cs

     文件       2827  2018-11-27 15:20  Debuger\Properties\Resources.Designer.cs

     文件       5612  2018-11-27 15:20  Debuger\Properties\Resources.resx

............此处省略64个文件信息

评论

共有 条评论