資源簡介
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?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?????{?????
????????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++程序設計教程第二版實驗指導-錢能-清華大學出版社
評論
共有 條評論