资源简介
MFC 迷宫游戏

代码片段和文件信息
#include “stdafx.h“
#include “Grid.h“
#include
#include
#include
#include
#include “A_Planner.h“
A_Planner::~A_Planner()
{}
bool A_Planner::checkIfOutsideObstacles(Grid &grid node &tempNode)
{
int index=grid.getwidth()*(tempNode.y-0.5)+(tempNode.x-0.5);
if(grid.is_pass[index]==0)
{
return true;
}
return false;
}
bool A_Planner:: isEdge(node &edgeGrid &grid)
{
if(edge.x<0 || edge.x>grid.getwidth() || edge.y<0 || edge.y>grid.getheight())
{
return true;
}
return false;
}
float A_Planner::distanceFromA2B(node &disfloat endPointxfloat endPointy)
{
float distance = (sqrt(pow((dis.x-endPointx)2))+sqrt(pow((dis.y-endPointy)2)));
return distance;
}
node* A_Planner::isInOpenVec(node &open)
{
std::vector::iterator iter;
node* result = NULL;
for (iter=v_open.begin();iter!=v_open.end();iter++)
{
if((open.x == (*iter)->x) && (open.y==(*iter)->y))
{
result = *iter;
break;
}
}
return result;
}
node* A_Planner:: isInCloseVec(node &close)
{
std::vector::iterator iter;
node* result = NULL;
for (iter=v_close.begin();iter!=v_close.end();iter++)
{
if((close.x == (*iter)->x) && (close.y==(*iter)->y))
{
result = *iter;
break;
}
}
return result;
}
void A_Planner::addNode2Paret(node* parent)
{
node b;
b=*parent;
int a[2][5]= {{00-110}
{01 001}
};
int delta[5] = {01111};
for(int i = 1; i <= 5; i++)
{
b=*parent;
b.x = b.x+a[0][i];
b.y=b.y+a[1][i];
if(isEdge(bgrid))
{
continue;
}
if (checkIfOutsideObstacles(grid b))
{
continue;
}
node* pInOpen = isInOpenVec(b);
if(pInOpen)
{
int newG = delta[i] + parent->m_G;
if(newG < pInOpen->m_G)
{
pInOpen->m_G = newG;
pInOpen->m_parent = parent;
}
continue;
}
if( !isInCloseVec(b))
{
node *child = new node;
child->x = b.x;
child->y = b.y;
child->m_parent = parent;
child->m_G = parent->m_G + delta[i];
child->m_place = 1;
v_open.push_back(child);
}
}
}
node* A_Planner::findMinNode2EndInOpen()
{
float min = 0xFFFFFFF;
std::vector::iterator iter;
node* result = NULL;
int deleteWhere = 0;
for (int i = 0; i < v_open.size();i++)
{
node* p = v_open[i];
node g=*p;
float a = distanceFromA2B(gendPointxendPointy);
a+= p->m_G;
/* countloop++;*/
if(min > a)
{
re
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3495 2015-12-06 15:39 CMaze\CMaze\A_Planner.cpp
文件 1227 2015-11-23 21:36 CMaze\CMaze\A_Planner.h
文件 51292 2015-11-28 21:47 CMaze\CMaze\CMaze.aps
文件 3009 2015-11-23 21:26 CMaze\CMaze\CMaze.cpp
文件 459 2015-11-23 21:03 CMaze\CMaze\CMaze.h
文件 11286 2015-11-28 21:46 CMaze\CMaze\CMaze.rc
文件 6474 2015-11-24 09:20 CMaze\CMaze\CMaze.vcproj
文件 1407 2015-12-06 15:57 CMaze\CMaze\CMaze.vcproj.DS-PC.DS.user
文件 1029 2015-11-25 21:58 CMaze\CMaze\CMazeDoc.cpp
文件 540 2015-11-23 21:03 CMaze\CMaze\CMazeDoc.h
文件 11662 2015-11-28 21:21 CMaze\CMaze\CMazeView.cpp
文件 1037 2015-11-24 13:14 CMaze\CMaze\CMazeView.h
文件 944 2015-11-24 17:05 CMaze\CMaze\Dcontinue.cpp
文件 479 2015-11-24 09:46 CMaze\CMaze\Dcontinue.h
文件 1336 2015-11-28 19:12 CMaze\CMaze\Dcreatemaze.cpp
文件 554 2015-11-24 09:28 CMaze\CMaze\Dcreatemaze.h
文件 933 2015-11-24 08:46 CMaze\CMaze\Dmazecreate.cpp
文件 483 2015-11-24 08:46 CMaze\CMaze\Dmazecreate.h
文件 777 2015-11-24 16:35 CMaze\CMaze\Dsettimer1.cpp
文件 433 2015-11-24 16:20 CMaze\CMaze\Dsettimer1.h
文件 954 2015-11-28 21:23 CMaze\CMaze\Grid.cpp
文件 279 2015-11-21 15:00 CMaze\CMaze\Grid.h
文件 1067 2015-12-06 15:48 CMaze\CMaze\MainFrm.cpp
文件 509 2015-11-23 21:03 CMaze\CMaze\MainFrm.h
文件 2907 2015-11-23 21:03 CMaze\CMaze\ReadMe.txt
文件 21630 2005-12-08 14:56 CMaze\CMaze\res\CMaze.ico
文件 361 2015-11-23 21:03 CMaze\CMaze\res\CMaze.rc2
文件 1078 2005-12-08 14:56 CMaze\CMaze\res\CMazeDoc.ico
文件 1254 2015-11-23 21:30 CMaze\CMaze\res\wall.bmp
文件 1603 2015-11-24 13:14 CMaze\CMaze\resource.h
............此处省略15个文件信息
- 上一篇:MFC表达式计算器
- 下一篇:C++程序设计教程第二版实验指导-钱能-清华大学出版社
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
评论
共有 条评论