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

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

?? cmaptsp.cpp

?? 開發(fā)游戲人工智能的王道書
?? CPP
字號(hào):
#include "CmapTSP.h"



//--------------------Create Cities-------------------------
//
//	Evenly spaces the cities on the perimeter of a wheel and
//  returns a vector of their coordinates
//----------------------------------------------------------
void CmapTSP::CreateCitiesCircular()
{
	//first caculate the radius of spread and the origin
	const int margin = 50;
	
	double radius;

	if (m_MapHeight < m_MapWidth)
	{
		radius = (m_MapHeight / 2) - margin;
	}

	else
	{
		radius = (m_MapWidth / 2) - margin;
	}
	
	CoOrd origin(m_MapWidth / 2, m_MapHeight / 2);

	//calculate angle division between adjacent cities.
	double SegmentSize = 2 * pi / m_NumCities;
	
	double angle = 0;
	
	vector<CoOrd> vecCities;
	
	while (angle < 2 * pi)
	{
		CoOrd ThisCity;
		
		ThisCity.x = radius * sin(angle) + origin.x;
		ThisCity.y = radius * cos(angle) + origin.y;
		
		m_vecCityCoOrds.push_back(ThisCity);
		
		angle += SegmentSize;
	}
}
//-------------------------------BestPossibleFitness---------------------------------
//
//	calculates the distance of the optimum route. We use this so we
//	can tell when to stop each run
//----------------------------------------------------------------------
void CmapTSP::CalculateBestPossibleRoute()
{
	m_dBestPossibleRoute = 0;
	
	for (int city=0; city<m_vecCityCoOrds.size()-1; ++city)
	{
		m_dBestPossibleRoute += CalculateA_to_B(m_vecCityCoOrds[city], m_vecCityCoOrds[city+1]);
		
		//add in a small amount to cover any precision errors we may have made
		m_dBestPossibleRoute += EPSILON;
	}
	
	//add in the distance from the last to the first
	m_dBestPossibleRoute += CalculateA_to_B(m_vecCityCoOrds[m_vecCityCoOrds.size()-1], m_vecCityCoOrds[0]);
}

//---------------------Calculate Distance----------------------
//
//	returns the distance between the two given cities
//-------------------------------------------------------------
double CmapTSP::CalculateA_to_B(const CoOrd &city1, const CoOrd &city2)
{
	double xDist = city1.x - city2.x;
	double yDist = city1.y - city2.y;
	
	return sqrt(xDist*xDist + yDist*yDist);
}

//-----------------Calculate Fitness ---------------------------
//
//	calculates the total distance the salesman must travel for
//	the given order of cities
//--------------------------------------------------------------
double CmapTSP::GetTourLength(const vector<int> &route)
{
	double TotalDistance = 0;
	
	for (int i=0; i<route.size()-1; ++i)
	{
		int city1 = route[i];
		int city2 = route[i+1];
		
		TotalDistance += CalculateA_to_B(m_vecCityCoOrds[city1], m_vecCityCoOrds[city2]);
	}
	
	//don't forget this is a closed loop so we need to add in the distance 
	//from the last city visited back to the first
	int last  = route[route.size()-1];
	int first = route[0];
	
	TotalDistance += CalculateA_to_B(m_vecCityCoOrds[last], m_vecCityCoOrds[first]);
	
	return TotalDistance;
}
//--------------------------- Refresh --------------------------------
//
//	used to recalculate the city positions and the best possible tour 
//	if map sizes are changed (eg if user changes window size)
//--------------------------------------------------------------------
void CmapTSP::Resize(const int new_width, const int new_height)
{
	m_MapWidth  = new_width;
	m_MapHeight = new_height;

	m_vecCityCoOrds.clear();

	CreateCitiesCircular();
	
	CalculateBestPossibleRoute();
}



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品剧情在线观看| 日本道精品一区二区三区 | 亚洲成人手机在线| 国产精品白丝jk黑袜喷水| 欧美日韩国产一二三| 国产欧美一区二区精品忘忧草| 视频在线观看一区二区三区| eeuss鲁一区二区三区| 精品sm捆绑视频| 亚洲成人资源网| 在线视频亚洲一区| 国产精品人成在线观看免费| 狠狠色伊人亚洲综合成人| 91精品国产综合久久久久久漫画| 一区二区国产盗摄色噜噜| 成人免费高清视频在线观看| 亚洲精品一区二区三区香蕉| 天天影视网天天综合色在线播放 | 久久99国产精品久久| 欧美日韩高清一区二区三区| 亚洲免费观看高清完整版在线观看| 国产成人精品在线看| 欧美成人免费网站| 日韩av午夜在线观看| 欧美亚洲自拍偷拍| 亚洲卡通动漫在线| av欧美精品.com| 欧美国产成人精品| 国产白丝网站精品污在线入口| 欧美成人激情免费网| 久久国产欧美日韩精品| 日韩色在线观看| 老鸭窝一区二区久久精品| 亚洲一区在线观看网站| 色婷婷综合久久久久中文一区二区| 中文字幕中文字幕中文字幕亚洲无线| 国产成人精品1024| 欧美—级在线免费片| 成人小视频免费观看| 中文字幕第一区二区| 成人黄色在线看| 国产精品成人一区二区艾草| eeuss鲁片一区二区三区| 中文字幕中文字幕一区| 99视频精品在线| 亚洲精品午夜久久久| 精品视频一区三区九区| 午夜伦欧美伦电影理论片| 91精品国产黑色紧身裤美女| 免费在线观看不卡| 2023国产精华国产精品| 国产一区二区三区免费观看| 国产欧美va欧美不卡在线| 99久久婷婷国产| 一区二区三区免费观看| 欧美精品在线观看播放| 蜜臀av性久久久久蜜臀aⅴ | 欧美成人一区二区三区在线观看| 蜜臀精品一区二区三区在线观看| 久久综合给合久久狠狠狠97色69| 国产成人8x视频一区二区| 中文字幕日本乱码精品影院| 一本大道久久精品懂色aⅴ | 国产精品伦理在线| 在线一区二区三区四区| 午夜a成v人精品| 日韩欧美在线影院| 成人性生交大片免费看中文| 亚洲精品v日韩精品| 717成人午夜免费福利电影| 久久91精品国产91久久小草| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品国产三级国产普通话蜜臀| 99re成人在线| 日韩精品一级中文字幕精品视频免费观看 | 国产精品99久久久久久久女警| 中文字幕一区二区三区在线不卡| 欧美日韩在线三区| 国产一区二区三区在线观看免费 | 一区二区三区欧美视频| 717成人午夜免费福利电影| 国产精品一区二区91| 亚洲精品国产成人久久av盗摄| 欧美一级黄色录像| 成人精品鲁一区一区二区| 亚洲国产成人av网| 久久精品亚洲精品国产欧美| 色婷婷精品久久二区二区蜜臀av| 色婷婷久久综合| 精品一区免费av| 亚洲免费在线视频一区 二区| 91麻豆精品国产自产在线观看一区| 国产成人免费视频精品含羞草妖精| 亚洲男人电影天堂| 欧美成人精品二区三区99精品| 91香蕉视频mp4| 久久国产生活片100| 一区二区三区四区国产精品| 久久这里都是精品| 欧美色视频一区| 丁香激情综合五月| 秋霞电影网一区二区| 亚洲乱码国产乱码精品精可以看| 日韩女优av电影| 欧美午夜精品一区| 成人激情电影免费在线观看| 免费av成人在线| 一区二区三区中文字幕精品精品| 久久综合久久久久88| 欧美久久久久久久久中文字幕| 成人黄色a**站在线观看| 久久精品久久精品| 亚洲成在人线在线播放| 国产精品久久午夜| 精品国产一区二区三区久久久蜜月| 欧美性受极品xxxx喷水| 成人午夜伦理影院| 精品中文av资源站在线观看| 亚洲444eee在线观看| 亚洲欧美一区二区三区久本道91| 久久精品免费在线观看| 91麻豆精品国产91久久久| 色婷婷精品大在线视频| 成人毛片老司机大片| 激情综合色播五月| 日韩和欧美的一区| 一区二区三区在线高清| 国产精品久久看| 国产亚洲精品aa| 日韩欧美国产1| 欧美日韩电影一区| 欧日韩精品视频| 91视频精品在这里| 丁香婷婷综合色啪| 国产精品一品二品| 国模少妇一区二区三区| 美女爽到高潮91| 男女男精品视频| 日韩av在线发布| 日韩精品免费视频人成| 亚洲高清免费视频| 亚洲免费av在线| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品欧美综合在线| 国产性色一区二区| 国产午夜一区二区三区| 久久综合网色—综合色88| 日韩美女视频一区二区在线观看| 91精品国产一区二区三区香蕉| 欧美日本视频在线| 欧美丰满美乳xxx高潮www| 欧美日韩你懂得| 在线播放视频一区| 7777精品伊人久久久大香线蕉的| 欧美精品乱码久久久久久| 9191精品国产综合久久久久久| 欧美日韩国产片| 在线综合视频播放| 日韩午夜中文字幕| 日韩欧美成人激情| 久久女同互慰一区二区三区| 久久影音资源网| 国产欧美日韩在线视频| 国产精品一区二区x88av| 国产乱码字幕精品高清av | 奇米精品一区二区三区四区| 日韩高清一区在线| 久久成人免费网站| 国产在线精品免费| 国产高清视频一区| 成人伦理片在线| 色噜噜久久综合| 欧美日韩国产小视频| 日韩精品影音先锋| 久久精子c满五个校花| 国产欧美精品一区二区三区四区 | 欧美国产一区二区| 亚洲欧洲av一区二区三区久久| 又紧又大又爽精品一区二区| 五月婷婷色综合| 久久国产免费看| 成人一区在线看| 欧美在线一区二区| 日韩三级在线免费观看| 久久精品视频免费观看| 国产精品国产三级国产a| 亚洲资源中文字幕| 日韩福利电影在线观看| 国产精品99久久久| 91在线观看一区二区| 欧美日韩综合色| 精品久久国产97色综合| 国产精品久久久久影院老司 | 国产精品美女久久久久av爽李琼| 亚洲精品午夜久久久| 久久精品国产亚洲a| av资源网一区| 在线综合亚洲欧美在线视频| 国产午夜精品一区二区| 亚洲国产精品久久久久婷婷884|