资源简介
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表达式计算器
- 一个简单的MFC画圆的
- C++实现指针式时钟Sample
- 航空客运订票系统数据结构课程设计
- LPC1768IAP+MFC上位机+bootloader+app
- PN532-libnfc-mfoc-mfcuk-windows
- MFC学生选课系统单文档
- MFC多线程编程三个
- 学生管理系统MFC Mysql
- MFC 小游戏程序。实现跳动方块。
- MFC socket 局域网聊天
- 用c++编写的打气球的游戏,用MFC实现
- 银行家算法 死锁避免 可视化 MFC
- VC MFC之图书管理系统含源码
- 交互式绘图程序(MFC) 绘图
- zw_MFC编写一个简单的登录对话框(连
- 基于mfc vc 的flash播放器
- MFC个人简历
- VC计算器,完整的案例,适合MFC和VC
- 老何炸飞机源代码
- 哈夫曼树MFC
- 基于MFC的串口调试助手
- 基于MFC五子棋包含网络对战
- MFC实现高仿画板、绘图软件功能带详
- VC mfc access ado 学生管理系统
- 龚建伟MFC串口通信
- VC++/MFC扫雷源代码
- MFC点击画圆并记录坐标
- MFCList可编辑列表控件
- 基于DWT和MFCC的说话人识别系统
评论
共有 条评论