• 大小: 288KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C#
  • 标签: 寻路  C#  

资源简介

在实例中把寻路算法写成了一个专门的类。使用非常方便。效率很高。可以直接显示路径看结果,也可以让它一步步显示出搜索的过程。鼠标在界面上画出一些黑点可以作为障碍,来考验它的能力,呵呵

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AI
{
    /// 
    /// 用于构成把需要寻路的地图抽像成地图副本(StepNode类型的二维数组)
    /// 

    public class StepNode
    {
        public int RowIndex;
        public int ColIndex;
        public StepNode FartherNode;
        public int F
        {
            get { return G + H; }
        }
        public int G;
        public int H;
        public int State;
    }
    public delegate void SearchPathNotifactionEventHandle(int RowIndexint ColunmIndex);
    public class AIPath
    {
        public bool IsOpenNotification = false;
        public SearchPathNotifactionEventHandle StepReachEvent;
        public SearchPathNotifactionEventHandle StepWantToBlockCollectEvent;
        StepNode StartNode = null;
        StepNode EndNode = null;
        public List OpenNode = new List();
        public List FootPath = new List();
        int RowCount;
        int ColCount;
        public StepNode[] SubMap;
        /// 
        /// 创建一个指定(像素或“格式”等)行列数量智能搜索程序(注意行与列与图片的长宽的对应关系)
        /// 

        /// 行数量
        /// 列数量
        public AIPath(int rowcountint colcount)
        {
            RowCount = rowcount;
            ColCount = colcount;
            SubMap = new StepNode[RowCountColCount];
            for (int i = 0; i < rowcount; i++)
            {
                for (int j = 0; j < colcount; j++)
                {
                    SubMap[i j] = new StepNode();
                    SubMap[i j].ColIndex = j;
                    SubMap[i j].RowIndex = i;
                    SubMap[i j].State = 0;
                    SubMap[i j].H = 0;
                    SubMap[i j].G = 0;
                }
            }
        }
        /// 
        /// 将搜索程序重置到初始状态,清除之前搜索过程中产生的数据
        /// 

        public void ReSet()
        {
            this.OpenNode.Clear();
            this.FootPath.Clear();
            for (int i = 0; i < RowCount; i++)
            {
                for (int j = 0; j < ColCount; j++)
                {
                    if (SubMap[i j].State == 5) 
                    {
                        SubMap[i j].State = 0;
                        SubMap[i j].H = 0;
                        SubMap[i j].G = 0;
                        SubMap[i j].FartherNode = null;
                    }
                }
            }
        }
        /// 
        /// 设置地图副本中起始点和结束点(本程序地图副本用的是一个数组用来表示地图上的“格子”)
        /// 

        /// 起始点的行索引
        /// 起始点的列索引
        /// 结束点的行索引
        /// 结束点的列索引
        public void SetStartEnd(int SR int SC int ER int EC)
        {
            this.StartNode = SubMap[SR SC];
  

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

     文件       3767  2011-09-27 19:33  AI\AI\AI.csproj

     文件      10427  2011-09-27 22:49  AI\AI\AIPath.cs

     文件     177152  2011-09-27 22:57  AI\AI\bin\Debug\AI.exe

     文件      36352  2011-09-27 22:57  AI\AI\bin\Debug\AI.pdb

     文件      14328  2011-09-27 23:31  AI\AI\bin\Debug\AI.vshost.exe

     文件       5856  2011-09-27 22:57  AI\AI\mainForm.cs

     文件       8668  2011-09-27 22:54  AI\AI\mainForm.Designer.cs

     文件     245224  2011-09-27 22:54  AI\AI\mainForm.resx

     文件        380  2011-09-27 23:31  AI\AI\obj\Debug\AI.csproj.FileListAbsolute.txt

     文件        850  2011-09-27 22:56  AI\AI\obj\Debug\AI.csproj.GenerateResource.Cache

     文件     177152  2011-09-27 22:57  AI\AI\obj\Debug\AI.exe

     文件     159972  2011-09-27 22:56  AI\AI\obj\Debug\AI.mainForm.resources

     文件      36352  2011-09-27 22:57  AI\AI\obj\Debug\AI.pdb

     文件        180  2011-09-27 22:04  AI\AI\obj\Debug\AI.Properties.Resources.resources

     文件        486  2011-09-27 19:25  AI\AI\Program.cs

     文件       1336  2011-09-27 19:24  AI\AI\Properties\AssemblyInfo.cs

     文件       2854  2011-09-27 19:24  AI\AI\Properties\Resources.Designer.cs

     文件       5612  2011-09-27 19:24  AI\AI\Properties\Resources.resx

     文件       1087  2011-09-27 19:24  AI\AI\Properties\Settings.Designer.cs

     文件        249  2011-09-27 19:24  AI\AI\Properties\Settings.settings

     文件        896  2011-09-27 19:24  AI\AI.sln

    ..A..H.     13824  2011-09-27 23:31  AI\AI.suo

     目录          0  2011-09-27 19:25  AI\AI\obj\Debug\Refactor

     目录          0  2011-09-27 19:24  AI\AI\obj\Debug\TempPE

     目录          0  2011-09-27 22:04  AI\AI\bin\Debug

     目录          0  2011-09-27 22:57  AI\AI\obj\Debug

     目录          0  2011-09-27 19:25  AI\AI\bin

     目录          0  2011-09-27 19:24  AI\AI\obj

     目录          0  2011-09-27 19:24  AI\AI\Properties

     目录          0  2011-09-27 22:57  AI\AI

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

评论

共有 条评论