MFC 迷宫游戏
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3495 2015-12-06 15:39 CMazeCMazeA_Planner.cpp
文件 1227 2015-11-23 21:36 CMazeCMazeA_Planner.h
文件 51292 2015-11-28 21:47 CMazeCMazeCMaze.aps
文件 3009 2015-11-23 21:26 CMazeCMazeCMaze.cpp
文件 459 2015-11-23 21:03 CMazeCMazeCMaze.h
文件 11286 2015-11-28 21:46 CMazeCMazeCMaze.rc
文件 6474 2015-11-24 09:20 CMazeCMazeCMaze.vcproj
文件 1407 2015-12-06 15:57 CMazeCMazeCMaze.vcproj.DS-PC.DS.user
文件 1029 2015-11-25 21:58 CMazeCMazeCMazeDoc.cpp
文件 540 2015-11-23 21:03 CMazeCMazeCMazeDoc.h
文件 11662 2015-11-28 21:21 CMazeCMazeCMazeView.cpp
文件 1037 2015-11-24 13:14 CMazeCMazeCMazeView.h
文件 944 2015-11-24 17:05 CMazeCMazeDcontinue.cpp
文件 479 2015-11-24 09:46 CMazeCMazeDcontinue.h
文件 1336 2015-11-28 19:12 CMazeCMazeDcreatemaze.cpp
文件 554 2015-11-24 09:28 CMazeCMazeDcreatemaze.h
文件 933 2015-11-24 08:46 CMazeCMazeDmazecreate.cpp
文件 483 2015-11-24 08:46 CMazeCMazeDmazecreate.h
文件 777 2015-11-24 16:35 CMazeCMazeDsettimer1.cpp
文件 433 2015-11-24 16:20 CMazeCMazeDsettimer1.h
文件 954 2015-11-28 21:23 CMazeCMazeGrid.cpp
文件 279 2015-11-21 15:00 CMazeCMazeGrid.h
文件 1067 2015-12-06 15:48 CMazeCMazeMainFrm.cpp
文件 509 2015-11-23 21:03 CMazeCMazeMainFrm.h
文件 2907 2015-11-23 21:03 CMazeCMazeReadMe.txt
文件 21630 2005-12-08 14:56 CMazeCMaze
esCMaze.ico
文件 361 2015-11-23 21:03 CMazeCMaze
esCMaze.rc2
文件 1078 2005-12-08 14:56 CMazeCMaze
esCMazeDoc.ico
文件 1254 2015-11-23 21:30 CMazeCMaze
eswall.bmp
文件 1603 2015-11-24 13:14 CMazeCMaze
esource.h
............此处省略15个文件信息
#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 CMazeCMazeA_Planner.cpp
文件 1227 2015-11-23 21:36 CMazeCMazeA_Planner.h
文件 51292 2015-11-28 21:47 CMazeCMazeCMaze.aps
文件 3009 2015-11-23 21:26 CMazeCMazeCMaze.cpp
文件 459 2015-11-23 21:03 CMazeCMazeCMaze.h
文件 11286 2015-11-28 21:46 CMazeCMazeCMaze.rc
文件 6474 2015-11-24 09:20 CMazeCMazeCMaze.vcproj
文件 1407 2015-12-06 15:57 CMazeCMazeCMaze.vcproj.DS-PC.DS.user
文件 1029 2015-11-25 21:58 CMazeCMazeCMazeDoc.cpp
文件 540 2015-11-23 21:03 CMazeCMazeCMazeDoc.h
文件 11662 2015-11-28 21:21 CMazeCMazeCMazeView.cpp
文件 1037 2015-11-24 13:14 CMazeCMazeCMazeView.h
文件 944 2015-11-24 17:05 CMazeCMazeDcontinue.cpp
文件 479 2015-11-24 09:46 CMazeCMazeDcontinue.h
文件 1336 2015-11-28 19:12 CMazeCMazeDcreatemaze.cpp
文件 554 2015-11-24 09:28 CMazeCMazeDcreatemaze.h
文件 933 2015-11-24 08:46 CMazeCMazeDmazecreate.cpp
文件 483 2015-11-24 08:46 CMazeCMazeDmazecreate.h
文件 777 2015-11-24 16:35 CMazeCMazeDsettimer1.cpp
文件 433 2015-11-24 16:20 CMazeCMazeDsettimer1.h
文件 954 2015-11-28 21:23 CMazeCMazeGrid.cpp
文件 279 2015-11-21 15:00 CMazeCMazeGrid.h
文件 1067 2015-12-06 15:48 CMazeCMazeMainFrm.cpp
文件 509 2015-11-23 21:03 CMazeCMazeMainFrm.h
文件 2907 2015-11-23 21:03 CMazeCMazeReadMe.txt
文件 21630 2005-12-08 14:56 CMazeCMaze
esCMaze.ico
文件 361 2015-11-23 21:03 CMazeCMaze
esCMaze.rc2
文件 1078 2005-12-08 14:56 CMazeCMaze
esCMazeDoc.ico
文件 1254 2015-11-23 21:30 CMazeCMaze
eswall.bmp
文件 1603 2015-11-24 13:14 CMazeCMaze
esource.h
............此处省略15个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)