91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 20KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-18
  • 語言: C/C++
  • 標簽: ASTAR??

資源簡介

A*算法的源碼好久之前寫的了,拿出來稍微整理了一下,看上去一份教科書上的一樣標準=。= 沒人沒有任何技巧性的東西,感覺好悲哀。唯一的亮度就是,功能寫好后, 接口封裝的還是比較漂亮的~

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“Astar.h“

MAP**??map?=?NULL;
char**?bmap?=?NULL;

CAstar::~CAstar()
{
}

CAstar::CAstar()
{
nxSize?=?0;
nySize?=?0;
//方向為左左下下右下左上上右上右;
int?tmp[8][2]?=?{?{?-1?0?}{?-1?1?}{?0?1?}{?1?1?}{?-1?-1?}{?0?-1?}{?1?-1?}{?1?0?}?};
int?costtemp[8]?=?{?10?14?10?14?14?10?14?10?};
memcpy(dir?tmp?sizeof(tmp));
memcpy(cost?costtemp?sizeof(costtemp));
}

void?CAstar::AllocMap(int?xSize?int?ySize)
{
int?i;
nxSize?=?xSize;
nySize?=?ySize;
bmap?=?new?char*[xSize];
map?=?new?MAP*[xSize];
for?(i?=?0;?i? {
bmap[i]?=?new?char[ySize];
map[i]?=?new?MAP[ySize];
}

}
void?CAstar::FreeMap()
{
int?i;

for?(?i?=?0;?i? {
delete[]?bmap[i];
delete[]?map[i];
}
delete?bmap;
delete?map;
}
bool?CAstar::ReadBoolMap(char?*sMapFile)
{
HANDLE?hFile?=?NULL;
DWORD?dwFileSize?=?0;
DWORD?dwBytes?=?0;
void*?pMapBuf?=?0;
hFile?=?CreateFileA(sMapFile?GENERIC_READ?FILE_SHARE_READ?NULL?OPEN_EXISTING?FILE_ATTRIBUTE_NORMAL?NULL);
if?(INVALID_HANDLE_VALUE==?hFile)
{
return?false;
}
dwFileSize?=?GetFileSize(hFile?NULL);
if?(!dwFileSize)
{
CloseHandle(hFile);
return?false;
}
pMapBuf?=?VirtualAlloc(NULL?dwFileSize?MEM_COMMITPAGE_EXECUTE_READWRITE);
if?(!pMapBuf)
{
CloseHandle(hFile);
return?false;
}
if?(!ReadFile(hFilepMapBufdwFileSize&dwBytesNULL))
{
CloseHandle(hFile);
return?false;
}
CloseHandle(hFile);

for?(int?i?=?0;?i? {
CopyMemory(&bmap[i][0]?(char*)pMapBuf?+?i*nySize?nySize);
}
VirtualFree(pMapBuf?dwFileSize?MEM_DECOMMIT);
return?true;
}
void?CAstar::PrintMap(CWnd*?pWnd?int?bx?int?by)
{
CBrush?brush(RGB(6?255?255));
CClientDC?dc(pWnd);
Selectobject(dc?brush);
for?(int?i?=?bxw=0;?i? {
for?(int?j?=?byh=0;?j? {
if?(bmap[i][j]?==?_map_Type_ok)
{
dc.SetPixel(whRGB(0?0?0));
}
else?if(bmap[i][j]?==?0)
{
continue;
}
else?if?(bmap[i][j]?==?_map_Type_Path)
{
dc.SetPixel(wh?RGB(255?0?0));
}
else?if?(bmap[i][j]?==?_map_Type_BeginPoint)
{
dc.SetPixel(w?h?RGB(0?128?255));
}
else?if?(bmap[i][j]?==?_map_Type_EndPoint)
{
dc.SetPixel(w?h?RGB(255?0?0));
}
}

}
ReleaseDC(pWnd->GetSafeHwnd()?dc);
}

void?CAstar::DirObstacle(int?nxint?nyint*?pob)
{
//方向為左0左下1下2右下3左上4上5右上6右7;
int?dx;
int?dy;
dx?=?nx?+?dir[0][0];
dy?=?ny?+?dir[0][1];
if?(IsValidPos(dx?dy))
{
if?(map[dx][dy].type?==?_map_Type_Obstacle)
{
pob[1]?=?0;
pob[4]?=?0;
}
}

dx?=?nx?+?dir[2][0];
dy?=?ny?+?dir[2][1];
if?(IsValidPos(dx?dy))
{
if?(map[dx][dy].type?==?_map_Type_Obstacle)
{
pob[1]?=?0;
pob[3]?=?0;
}
}

dx?=?nx?+?dir[5][0];
dy?=?ny?+?dir[5][1];
if?(IsValidPos(dx?dy))
{
if?(map[dx][dy].type?==?_map_Type_Obstacle)
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????1100000??2016-04-26?23:29??AStar\2DE584D.NLS1

?????文件???????7776??2016-08-19?23:36??AStar\Astar.cpp

?????文件???????4260??2016-08-19?23:36??AStar\Astar.h

?????目錄??????????0??2016-08-19?23:38??AStar

-----------?---------??----------?-----??----

??????????????1112036????????????????????4


評論

共有 條評論