资源简介
在实例中把寻路算法写成了一个专门的类。使用非常方便。效率很高。可以直接显示路径看结果,也可以让它一步步显示出搜索的过程。鼠标在界面上画出一些黑点可以作为障碍,来考验它的能力,呵呵
代码片段和文件信息
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个文件信息
- 上一篇:基于C#的波形显示控件的实现源码
- 下一篇:c# yv12转换rgb
相关资源
- c# yv12转换rgb
- 基于C#的波形显示控件的实现源码
- C# 斑马标签打印 WEB&WINFORM
- C# TCP服务器客户端通讯源码
- C#窗体小程序,实现文件夹创建、删除
- C#连接Oracle10g,11g,12g所需的DLL无需安
- C#Winform 销售管理系统
- 服务端获取DTU GPRS数据C#
-
Js to CSharp sc
ript converter - 测控课程设计ad转换程序
- Head First C#(第二版)中文版
- 简单的C#课程设计
- 基于讯飞的离线语音识别C#
- 基于C#的五点N次平滑算法
- c#上位机开发.txt
- 科达数据读取
- C#实现坐标转换
- c# socket 异步通信,一个服务器端和多
- 基于C#的实验室设备管理系统
- kepware c# demo
- C# u盘操作源代码
- AnimatedGifEncoder 类 c# 制作 gif 用到
- C# ECHART WPF 开发,非常漂亮的demo
- modbus协议的上位机
- 旅行商问题 遗传算法 贪婪基因重组
- C#利用fft实现快速卷积
- C# 矩阵运算实数+复数
- Winform分页控件(C#)
- 用VS2010做的绘图板C#
- c#实现拓扑关系图
评论
共有 条评论