亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? asstar.cpp

?? 用 vc 編 寫 的
?? CPP
字號:
#include "stdafx.h"
#include "SearchPath.h"
#include "ASStar.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

extern map[Height][Width];

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
// A** Algorithm
// Made by: Gardon_TDZL 2005,3,17
// my site about A** : tdzl.gameres.com
// 為他人編寫的尋路演示提供的A**算法類。
// 本代碼作者:天地之靈,完成日期:2005年3月17日
// 需要探討關(guān)于A**算法的內(nèi)容的,請到tdzl.gameres.com
// My QQ:150277814.
// My e-mail:tdzl2003.126.com
//////////////////////////////////////////////////////////////////////

CASStar::CASStar()
{
	int i,j;
	this->Size=Height*Width;
	for(i=0;i<Height;i++)
	{
		for(j=0;j<Width;j++)
		{
			if(map[i][j]==0)
			{
				startX=j;
				startY=i;
			}
			else if(map[i][j]==-3)
			{
				targetX=j;
				targetY=i;
			}
		}
	}
}

CASStar::~CASStar()
{
}

int	CASStar::searchThePath()
{
	int i,j;
	
	int bx,by,ex,ey;
	int bx1,by1,ex1,ey1;

	for (i=0;i<Height;i++)
		for (j=0;j<Width;j++)
			Value[i][j]=-1;

	Value[startY][startX]=1;
	bx=startX;by=startY;ex=startX;ey=startY;
	while (bx>=0)
	{
		bx1=-1;by1=-1;ex1=-1;ey1=-1;
		for (i=by;i<=ey;i++)
			for (j=bx;j<=ex;j++)
			if (Value[i][j]!=-1 && map[i][j]!=-1)
			{
				if ((Value[i][j+1]==-1 || Value[i][j]+1<Value[i][j+1]) && (j<Width-1))
				{
					Value[i][j+1]=Value[i][j]+1;
					if (j==ex) ex++;
					if (by1<0)
					{
						bx1=j+1;by1=i;
						ex1=bx1;ey1=i;
					}else
					{
						if (j+1>ex1)	ex1=j+1;
						if (j+1<bx1)	bx1=j+1;
						if (i>ey1)		ey1=i;
						if (i<by1)		by1=i;
					}
				}
				if ((Value[i+1][j]==-1 || Value[i][j]+1<Value[i+1][j]) && (i<Height-1))
				{
					Value[i+1][j]=Value[i][j]+1;
					if (i==ey) ey++;
					if (bx1<0)
					{
						bx1=j;by1=i+1;
						ex1=j;ey1=by1;
					}else
					{
						if (j>ex1)		ex1=j;
						if (j<bx1)		bx1=j;
						if (i+1>ey1)	ey1=i+1;
						if (i+1<by1)	by1=i+1;
					}
				}
			}
		for (i=by;i<=ey;i++)
			for (j=ex;j>=bx;j--)
			if (Value[i][j]!=-1 && map[i][j]!=-1)
			{
				if ((Value[i][j-1]==-1 || Value[i][j]+1<Value[i][j-1]) && (j>0))
				{
					Value[i][j-1]=Value[i][j]+1;
					if (j==bx) bx--;
					if (by1<0)
					{
						bx1=j-1;by1=i;
						ex1=bx1;ey1=i;
					}else
					{
						if (j-1>ex1)	ex1=j-1;
						if (j-1<bx1)	bx1=j-1;
						if (i>ey1)		ey1=i;
						if (i<by1)		by1=i;
					}
				}
				if ((Value[i+1][j]==-1 || Value[i][j]+1<Value[i+1][j]) && (i<Height-1))
				{
					Value[i+1][j]=Value[i][j]+1;
					if (i==ey) ey++;
					if (bx1<0)
					{
						bx1=j;by1=i+1;
						ex1=j;ey1=by1;
					}else
					{
						if (j>ex1)		ex1=j;
						if (j<bx1)		bx1=j;
						if (i+1>ey1)	ey1=i+1;
						if (i+1<by1)	by1=i+1;
					}
				}
			}
		for (i=ey;i>=by;i--)
			for (j=bx;j<=ex;j++)
			if (Value[i][j]!=-1 && map[i][j]!=-1)
			{
				if ((Value[i][j+1]==-1 || Value[i][j]+1<Value[i][j+1]) && (j<Width-1))
				{
					Value[i][j+1]=Value[i][j]+1;
					if (j==ex) ex++;
					if (by1<0)
					{
						bx1=j+1;by1=i;
						ex1=bx1;ey1=i;
					}else
					{
						if (j+1>ex1)	ex1=j+1;
						if (j+1<bx1)	bx1=j+1;
						if (i>ey1)		ey1=i;
						if (i<by1)		by1=i;
					}
				}
				if ((Value[i-1][j]==-1 || Value[i][j]+1<Value[i-1][j]) && (i>0))
				{
					Value[i-1][j]=Value[i][j]+1;
					if (i==ey) ey++;
					if (bx1<0)
					{
						bx1=j;by1=i-1;
						ex1=j;ey1=by1;
					}else
					{
						if (j>ex1)		ex1=j;
						if (j<bx1)		bx1=j;
						if (i-1>ey1)	ey1=i-1;
						if (i-1<by1)	by1=i-1;
					}
				}
			}
		for (i=ey;i>=by;i--)
			for (j=ex;j>=bx;j--)
			if (Value[i][j]!=-1 && map[i][j]!=-1)
			{
				if ((Value[i][j-1]==-1 || Value[i][j]+1<Value[i][j-1]) && (j>0))
				{
					Value[i][j-1]=Value[i][j]+1;
					if (j==ex) ex++;
					if (by1<0)
					{
						bx1=j-1;by1=i;
						ex1=bx1;ey1=i;
					}else
					{
						if (j-1>ex1)	ex1=j-1;
						if (j-1<bx1)	bx1=j-1;
						if (i>ey1)		ey1=i;
						if (i<by1)		by1=i;
					}
				}
				if ((Value[i-1][j]==-1 || Value[i][j]+1<Value[i-1][j]) && (i>0))
				{
					Value[i-1][j]=Value[i][j]+1;
					if (i==ey) ey++;
					if (bx1<0)
					{
						bx1=j-1;by1=i;
						ex1=bx1;ey1=i;
					}else
					{
						if (j>ex1)		ex1=j;
						if (j<bx1)		bx1=j;
						if (i-1>ey1)	ey1=i-1;
						if (i-1<by1)	by1=i-1;
					}
				}
			}
		
		bx=bx1;by=by1;ex=ex1;ey=ey1;
//		if (Value[targetY][targetX]>=0) break;
	}

	return 1;
}

void	CASStar::showThePath(CDC *pDC , int showMode)
{

	CBitmap bm1,bm2,bm3,bm5,bm6, *pbm;
	BITMAP bmMetric1,bmMetric2;

	bm1.LoadBitmap(IDB_BITMAP7);
	bm2.LoadBitmap(IDB_BITMAP8);
	bm3.LoadBitmap(IDB_BITMAP11);
	bm5.LoadBitmap(IDB_BITMAP12);//起點
	bm6.LoadBitmap(IDB_BITMAP13);//終點



	bm1.GetBitmap(&bmMetric1);
	bm2.GetBitmap(&bmMetric2);
	
	CDC memDC;
	memDC.CreateCompatibleDC(pDC);
	pbm = memDC.SelectObject(&bm1);



	if(showMode == 1)
	{
		//描繪搜索過的點
		for(int i=0;i<Height;i++)
		{
			for(int j=0;j<Width;j++)
			{
				if(Value[i][j]>=0)
				{
					memDC.SelectObject(&bm3);
					pDC->BitBlt(j*bmMetric1.bmHeight, i*bmMetric1.bmWidth,bmMetric1.bmWidth,bmMetric1.bmHeight,&memDC,0,0,SRCCOPY);
				}
			}
		}
		//結(jié)束描繪搜索過的點
	}


	//用漸變顏色顯示搜索過的點
	if(showMode == 2)
	{
		const int colorBeg = 70;
		int totalStep = (255 - colorBeg) * 5;
		double max = Value[targetY][targetX];
		int R, G, B, temp;
		for(int i=0;i<Height;i++)
		{
			for(int j=0;j<Width;j++)
			{
				if(Value[i][j] >= 0)
				{
					int curStep = (int)(Value[i][j]/max * totalStep);
					
					if(curStep > (temp = (255 - colorBeg) * 4))
					{
						R = curStep - temp + colorBeg;
						G = colorBeg;
						B = 255;
					}
					else if(curStep > (temp = (255 - colorBeg) * 3))
					{
						R = colorBeg;
						G = 255 - (curStep - temp);
						B = 255;
					}
					else if(curStep > (temp = (255 - colorBeg) * 2))
					{
						R = colorBeg;
						G = 255;
						B = curStep - temp + colorBeg;
					}
					else if(curStep > (temp = (255 - colorBeg)))
					{
						R = 255 - (curStep - temp);
						G = 255;
						B = colorBeg;
					}
					else
					{
						R = 255;
						G = curStep + colorBeg;
						B = colorBeg;
					}
					CRect tempRect(j*bmMetric2.bmWidth,i*bmMetric2.bmHeight,(j+1)*bmMetric2.bmWidth,(i+1)*bmMetric2.bmHeight);
					CBrush brushBg;
					brushBg.CreateSolidBrush(RGB(R,G,B));
					pDC->FillRect(&tempRect,&brushBg);
				}
			}
		}
	}
//結(jié)束描繪漸變色


//描繪最短路徑
	CPen pen,*p_pen;
	pen.CreatePen(PS_SOLID,2,RGB(0,0,255));
	p_pen = pDC->SelectObject(&pen);
	
	pDC->MoveTo(targetX * bmMetric2.bmWidth+bmMetric2.bmWidth/2 , targetY * bmMetric2.bmHeight+bmMetric2.bmHeight/2);
	
	int i=targetY;
	int j=targetX;
	while(Value[i][j]>0)
	{
		if (j<Width-1 && Value[i][j+1]<Value[i][j] && map[i][j+1]!=-1)
		{
			j++;
		}else
		if (i<Height-1 && Value[i+1][j]<Value[i][j] && map[i+1][j]!=-1)
		{
			i++;
		}
		else
		if (j>0 && Value[i][j-1]<Value[i][j] && map[i][j-1]!=-1)
		{
			j--;
		}
		else
		if (i>0 && Value[i-1][j]<Value[i][j] && map[i-1][j]!=-1)
		{
			i--;
		}
		else
		{
			break;
		}
		pDC->LineTo(j * bmMetric2.bmWidth+bmMetric2.bmWidth/2 , i * bmMetric2.bmHeight+bmMetric2.bmHeight/2);
	}
	pDC->SelectObject(p_pen);
	pen.DeleteObject();	
				
//結(jié)束描繪最短路徑				

	for(i = 0; i < Height; i ++)
	{
		for(int j = 0; j < Width;  j ++)
		{
			if(map[i][j]==-1)
			{
				memDC.SelectObject(&bm1);
				pDC->BitBlt(j*bmMetric1.bmHeight, i*bmMetric1.bmWidth,bmMetric1.bmWidth,bmMetric1.bmHeight,&memDC,0,0,SRCCOPY);
			}
			else if(map[i][j]==0)
			{
				memDC.SelectObject(&bm5);
				pDC->BitBlt(j*bmMetric2.bmHeight, i*bmMetric2.bmWidth,bmMetric2.bmWidth,bmMetric2.bmHeight,&memDC,0,0,SRCCOPY);
			}
			else if(map[i][j]==-3)
			{
				memDC.SelectObject(&bm6);
				pDC->BitBlt(j*bmMetric2.bmHeight, i*bmMetric2.bmWidth,bmMetric2.bmWidth,bmMetric2.bmHeight,&memDC,0,0,SRCCOPY);
			}			
		}
	}



	memDC.SelectObject(pbm);
	bm1.DeleteObject();
	bm2.DeleteObject();
	memDC.DeleteDC();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合中文字幕国产 | 欧美色手机在线观看| 亚洲精品一区在线观看| 亚洲福利电影网| 99久精品国产| 久久综合九色综合欧美就去吻| 亚洲成av人片观看| 色综合色综合色综合| 亚洲国产精品99久久久久久久久| 日本成人在线网站| 欧美私模裸体表演在线观看| 国产日韩综合av| 国产在线看一区| 欧美一卡二卡在线观看| 亚洲精品中文在线影院| 国产成人丝袜美腿| 久久午夜电影网| 强制捆绑调教一区二区| 欧美日免费三级在线| 亚洲精品久久嫩草网站秘色| 成人av影视在线观看| 国产日韩欧美精品电影三级在线 | 亚洲精选免费视频| 日本一区免费视频| 麻豆91精品视频| 欧美男男青年gay1069videost| 亚洲欧美日韩人成在线播放| 国产**成人网毛片九色| 久久精品一区二区| 国产精品88av| 国产欧美1区2区3区| 国产成人免费在线观看不卡| 久久久www成人免费无遮挡大片| 另类人妖一区二区av| 日韩欧美在线1卡| 麻豆国产欧美日韩综合精品二区 | 日韩欧美在线一区二区三区| 午夜精品久久一牛影视| 欧美日韩日本视频| 亚洲成人免费影院| 欧美久久高跟鞋激| 日本成人在线视频网站| 日韩免费一区二区| 久99久精品视频免费观看| 日韩欧美国产一区二区三区 | 国产拍揄自揄精品视频麻豆| 国产精品一区二区不卡| 久久精品人人做人人爽人人| 国产91精品在线观看| 国产精品久久久久久久久免费相片 | 成人精品亚洲人成在线| 中文欧美字幕免费| 色综合久久88色综合天天| 一区二区三区中文免费| 欧美三级日本三级少妇99| 天堂蜜桃91精品| 日韩美女视频一区二区在线观看| 久久99精品久久久久久动态图| 2020国产精品自拍| 成人性生交大片免费看中文 | 亚洲欧美色综合| 欧美色视频在线观看| 美女一区二区视频| 国产欧美一区二区精品性色| 成人av资源在线观看| 亚洲综合激情网| 日韩午夜中文字幕| 国产成人av资源| 中文字幕日本不卡| 欧美午夜精品一区二区蜜桃| 日本美女一区二区三区| 久久九九影视网| 在线一区二区三区四区五区| 日韩精品电影一区亚洲| 久久久久97国产精华液好用吗| 99re在线精品| 日韩经典一区二区| 久久这里只有精品6| 99视频精品在线| 天堂成人国产精品一区| 国产欧美精品日韩区二区麻豆天美| av在线不卡免费看| 日韩av一级电影| 日本一二三不卡| 欧美日韩一区三区四区| 国产精品66部| 亚洲777理论| 欧美激情在线看| 欧美日本视频在线| 成人午夜av在线| 偷拍与自拍一区| 国产精品视频一二三区| 欧美久久久久久久久久| 成年人网站91| 麻豆视频观看网址久久| 亚洲美女区一区| 精品国产91亚洲一区二区三区婷婷| 99riav久久精品riav| 激情欧美一区二区| 亚洲国产婷婷综合在线精品| 国产午夜精品在线观看| 欧美日本免费一区二区三区| 福利一区福利二区| 日韩国产精品久久| 亚洲精选一二三| 久久久久国产一区二区三区四区 | 欧美日韩综合在线免费观看| 国产伦精品一区二区三区免费| 亚洲国产精品久久久男人的天堂| 久久综合视频网| 精品视频一区三区九区| 成人久久18免费网站麻豆| 麻豆精品国产传媒mv男同| 亚洲影院免费观看| 国产精品乱子久久久久| 日韩精品一区二区三区蜜臀| 91福利国产成人精品照片| 成人免费观看av| 国产一区二区91| 日本美女一区二区三区视频| 一区二区三区丝袜| 国产精品成人免费 | 欧美色偷偷大香| 色综合久久88色综合天天免费| 国产成人久久精品77777最新版本| 天天综合日日夜夜精品| 一片黄亚洲嫩模| 中文字幕在线观看一区| xfplay精品久久| 日韩视频123| 在线播放视频一区| 欧美午夜精品久久久| 成人高清视频免费观看| 国产精品一线二线三线| 久久精品国产精品亚洲综合| 日韩国产高清在线| 婷婷亚洲久悠悠色悠在线播放| 亚洲综合免费观看高清完整版在线| 136国产福利精品导航| 国产精品色噜噜| 国产精品欧美久久久久无广告| 久久久综合视频| 精品乱人伦小说| 精品伦理精品一区| www国产亚洲精品久久麻豆| 精品粉嫩aⅴ一区二区三区四区| 91精品国产综合久久久久久漫画| 欧美精品丝袜久久久中文字幕| 欧美色区777第一页| 欧美三日本三级三级在线播放| 91激情在线视频| 日本久久一区二区三区| 欧美性受xxxx| 欧美日韩激情在线| 欧美乱妇一区二区三区不卡视频| 精品婷婷伊人一区三区三| 欧美日韩成人一区二区| 欧美理论电影在线| 678五月天丁香亚洲综合网| 91精品在线免费| 日韩欧美不卡一区| 亚洲精品一区二区三区蜜桃下载| 精品福利在线导航| 久久色在线视频| 欧美国产欧美综合| 一区免费观看视频| 亚洲六月丁香色婷婷综合久久 | 久久久不卡影院| 国产午夜亚洲精品午夜鲁丝片| 中文字幕第一区二区| 中文字幕一区二区三区av| 亚洲欧美区自拍先锋| 亚洲午夜影视影院在线观看| 日日夜夜免费精品| 男男视频亚洲欧美| 国产一区二区三区四区五区入口 | 国内成人精品2018免费看| 国产成a人亚洲精品| 91美女视频网站| 在线不卡欧美精品一区二区三区| 欧美成人在线直播| 国产精品天干天干在线综合| 日韩理论片在线| 午夜日韩在线观看| 国产在线麻豆精品观看| caoporm超碰国产精品| 欧美网站大全在线观看| 欧美一区二区三区免费大片| 久久精品视频在线免费观看| 亚洲日本乱码在线观看| 日韩av电影免费观看高清完整版在线观看 | 久久久久久**毛片大全| 亚洲欧美成aⅴ人在线观看 | 中文字幕精品一区| 一区二区三区丝袜| 精品在线一区二区| 91视频一区二区三区| 91精品国产一区二区人妖| 日本一区二区免费在线| 亚洲制服欧美中文字幕中文字幕|