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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cminesweeper.cpp

?? 智能掃雷工 AI 遺傳算法 人工神經網絡
?? CPP
字號:
#include "CMinesweeper.h"

//-----------------------------------constructor-------------------------
//
//-----------------------------------------------------------------------
CMinesweeper::CMinesweeper():
                             m_dRotation(RandFloat()*CParams::dTwoPi),
                             m_lTrack(0.16),
                             m_rTrack(0.16),
                             m_dFitness(0),
							               m_dScale(CParams::iSweeperScale),
                             m_iClosestMine(0)
			 
{
	//create a random start position
	m_vPosition = SVector2D((RandFloat() * CParams::WindowWidth), 
					                (RandFloat() * CParams::WindowHeight));
  
}

//-------------------------------------------Reset()--------------------
//
//	Resets the sweepers position, fitness and rotation
//
//----------------------------------------------------------------------
void CMinesweeper::Reset()
{
	//reset the sweepers positions
	m_vPosition = SVector2D((RandFloat() * CParams::WindowWidth), 
					                (RandFloat() * CParams::WindowHeight));
	
	//and the fitness
	m_dFitness = 0;

  //and the rotation
  m_dRotation = RandFloat()*CParams::dTwoPi;

	return;
}
//---------------------WorldTransform--------------------------------
//
//	sets up a translation matrix for the sweeper according to its
//  scale, rotation and position. Returns the transformed vertices.
//-------------------------------------------------------------------
void CMinesweeper::WorldTransform(vector<SPoint> &sweeper)
{
	//create the world transformation matrix
	C2DMatrix matTransform;
	
	//scale
	matTransform.Scale(m_dScale, m_dScale);
	
	//rotate
	matTransform.Rotate(m_dRotation);
	
	//and translate
	matTransform.Translate(m_vPosition.x, m_vPosition.y);
	
	//now transform the ships vertices
	matTransform.TransformSPoints(sweeper);
}

//-------------------------------Update()--------------------------------
//
//	First we take sensor readings and feed these into the sweepers brain.
//
//	The inputs are:
//	
//	A vector to the closest mine (x, y)
//	The sweepers 'look at' vector (x, y)
//
//	We receive two outputs from the brain.. lTrack & rTrack.
//	So given a force for each track we calculate the resultant rotation 
//	and acceleration and apply to current velocity vector.
//
//-----------------------------------------------------------------------
bool CMinesweeper::Update(vector<SVector2D> &mines)
{
	
	//this will store all the inputs for the NN
	vector<double> inputs;	

	//get vector to closest mine
	SVector2D vClosestMine = GetClosestMine(mines);
  
	//normalise it
  Vec2DNormalize(vClosestMine);
  
  //add in vector to closest mine
	inputs.push_back(vClosestMine.x);
	inputs.push_back(vClosestMine.y);

	//add in sweepers look at vector
	inputs.push_back(m_vLookAt.x);
	inputs.push_back(m_vLookAt.y);

  
	//update the brain and get feedback
	vector<double> output = m_ItsBrain.Update(inputs);

	//make sure there were no errors in calculating the 
	//output
	if (output.size() < CParams::iNumOutputs) 
  {
    return false;
  }

	//assign the outputs to the sweepers left & right tracks
	m_lTrack = output[0];
	m_rTrack = output[1];

	//calculate steering forces
	double RotForce = m_lTrack - m_rTrack;

	//clamp rotation
	Clamp(RotForce, -CParams::dMaxTurnRate, CParams::dMaxTurnRate);

  m_dRotation += RotForce;
	
	m_dSpeed = (m_lTrack + m_rTrack);	

	//update Look At 
	m_vLookAt.x = -sin(m_dRotation);
	m_vLookAt.y = cos(m_dRotation);

	//update position
  m_vPosition += (m_vLookAt * m_dSpeed);

	//wrap around window limits
	if (m_vPosition.x > CParams::WindowWidth) m_vPosition.x = 0;
	if (m_vPosition.x < 0) m_vPosition.x = CParams::WindowWidth;
	if (m_vPosition.y > CParams::WindowHeight) m_vPosition.y = 0;
	if (m_vPosition.y < 0) m_vPosition.y = CParams::WindowHeight;

	return true;
}


//----------------------GetClosestObject()---------------------------------
//
//	returns the vector from the sweeper to the closest mine
//
//-----------------------------------------------------------------------
SVector2D CMinesweeper::GetClosestMine(vector<SVector2D> &mines)
{
	double			closest_so_far = 99999;

	SVector2D		vClosestObject(0, 0);

	//cycle through mines to find closest
	for (int i=0; i<mines.size(); i++)
	{
		double len_to_object = Vec2DLength(mines[i] - m_vPosition);

		if (len_to_object < closest_so_far)
		{
			closest_so_far	= len_to_object;
			
			vClosestObject	= m_vPosition - mines[i];

      m_iClosestMine = i;
		}
	}

	return vClosestObject;
}
//----------------------------- CheckForMine -----------------------------
//
//  this function checks for collision with its closest mine (calculated
//  earlier and stored in m_iClosestMine)
//-----------------------------------------------------------------------
int CMinesweeper::CheckForMine(vector<SVector2D> &mines, double size)
{
  SVector2D DistToObject = m_vPosition - mines[m_iClosestMine];
		
	if (Vec2DLength(DistToObject) < (size + 5))
	{
			return m_iClosestMine;
  }

  return -1;
}

		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频电影在线| 日本精品免费观看高清观看| 麻豆国产欧美日韩综合精品二区| 亚洲精品一区二区三区福利| 91丨porny丨蝌蚪视频| 国产伦精品一区二区三区在线观看| 日韩精品91亚洲二区在线观看| 亚洲毛片av在线| 亚洲黄色录像片| 亚洲精品欧美专区| 亚洲综合成人在线视频| 午夜激情一区二区| 六月丁香婷婷色狠狠久久| 天天av天天翘天天综合网 | 免费精品视频最新在线| 日韩精品三区四区| 国产精品性做久久久久久| 国产精品99久久久久| 不卡的av电影| 欧美性一区二区| 欧美草草影院在线视频| 久久精品水蜜桃av综合天堂| 中文字幕一区二| 亚洲香肠在线观看| 国产一区91精品张津瑜| 成人听书哪个软件好| 在线免费不卡视频| 欧美成人猛片aaaaaaa| 国产精品素人视频| 亚洲制服丝袜一区| 韩国女主播一区| www.性欧美| 欧美一区日本一区韩国一区| www成人在线观看| 玉米视频成人免费看| 免费欧美日韩国产三级电影| 成人av片在线观看| 91精品国产免费| 国产精品美女一区二区| 免费看日韩a级影片| 91在线小视频| 精品国产百合女同互慰| 一二三区精品视频| 国产麻豆成人传媒免费观看| 欧美午夜免费电影| 久久精品人人做| 秋霞av亚洲一区二区三| 99久久综合国产精品| 日韩一区二区三区免费看| 最新日韩av在线| 国产一区二区三区av电影| 欧美视频一区二区三区四区| 中文av一区特黄| 毛片av一区二区| 欧美日韩三级在线| 日韩毛片一二三区| 国产成人午夜电影网| 日韩一区二区三区av| 亚洲午夜久久久| 91国产视频在线观看| 国产欧美一区二区精品性色超碰 | 久久美女高清视频 | 日韩免费电影一区| 亚洲va韩国va欧美va精品| 成人免费视频视频在线观看免费| 日韩免费成人网| 麻豆专区一区二区三区四区五区| 欧美综合色免费| 一区二区高清视频在线观看| 99久久精品99国产精品| 日韩一区有码在线| 99国产精品久久久久久久久久| 国产嫩草影院久久久久| 国产白丝精品91爽爽久久| 亚洲精品一区二区三区在线观看| 美女在线观看视频一区二区| 91精品国产丝袜白色高跟鞋| 午夜久久福利影院| 91麻豆精品国产91久久久资源速度| 一区二区在线看| 欧美色图一区二区三区| 亚洲综合视频网| 欧美日韩在线播放一区| 亚洲成人av在线电影| 欧美一区在线视频| 久久69国产一区二区蜜臀| 日韩午夜在线观看视频| 另类小说视频一区二区| 色综合久久久久久久| 中文字幕av免费专区久久| 国产91丝袜在线18| 久久婷婷国产综合精品青草 | 精品理论电影在线观看| 亚洲人成网站在线| 欧美亚洲一区二区在线观看| 一片黄亚洲嫩模| 一本久久a久久免费精品不卡| 国产精品国产三级国产| av网站免费线看精品| 亚洲欧美综合网| 99精品欧美一区二区三区小说 | 国产资源在线一区| 精品国产电影一区二区| 国产精品99久久久久久久女警 | 亚洲成av人片在线观看无码| 欧美在线三级电影| 国产91精品久久久久久久网曝门| 在线观看91精品国产入口| 天堂一区二区在线免费观看| 成人av在线观| 国产精品久久久久久久久图文区| 国产suv一区二区三区88区| 国产欧美1区2区3区| 一本大道久久a久久综合婷婷| 一区二区三区视频在线看| 欧美日韩一区二区在线视频| 日本vs亚洲vs韩国一区三区| 久久久无码精品亚洲日韩按摩| 国产成人精品亚洲日本在线桃色| 中文字幕精品三区| 制服丝袜中文字幕一区| 韩日精品视频一区| 国产精品久久久久久久蜜臀| 色综合色综合色综合| 亚洲超碰精品一区二区| 日韩精品一区国产麻豆| 高清不卡在线观看| 亚洲va中文字幕| 精品精品欲导航| 成人av网站大全| 美腿丝袜亚洲一区| 亚洲卡通欧美制服中文| 日韩亚洲欧美高清| 成人激情视频网站| 精品亚洲国内自在自线福利| 亚洲欧美自拍偷拍色图| 日韩视频在线一区二区| 91在线视频播放| 老司机免费视频一区二区| 亚洲小少妇裸体bbw| 欧美国产视频在线| 91精品久久久久久久久99蜜臂| 97se亚洲国产综合自在线观| 亚洲高清中文字幕| 亚洲午夜羞羞片| 国产精品美日韩| 精品电影一区二区| 9191国产精品| 在线免费观看日韩欧美| 91天堂素人约啪| 国产99精品视频| 极品少妇xxxx精品少妇| 午夜电影网一区| 亚洲乱码日产精品bd| 欧美国产欧美综合| 久久久精品中文字幕麻豆发布| 欧美日本一道本| 91国产免费看| 99re在线精品| 国产成人综合亚洲91猫咪| 国产精品白丝jk黑袜喷水| 另类的小说在线视频另类成人小视频在线| 最新日韩av在线| 综合久久综合久久| 亚洲欧美自拍偷拍色图| 国产精品视频线看| 国产精品久久久久9999吃药| 国产午夜三级一区二区三| 精品国产sm最大网站免费看| 日韩一卡二卡三卡国产欧美| 在线精品视频免费观看| 4hu四虎永久在线影院成人| 欧美日韩免费观看一区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美日韩一区二区三区四区| 北岛玲一区二区三区四区| 91丨九色丨蝌蚪丨老版| 色天天综合色天天久久| 国产乱妇无码大片在线观看| 免费观看久久久4p| 久久66热偷产精品| 香蕉影视欧美成人| 天天色 色综合| 秋霞电影一区二区| 国产一区二区免费在线| 性久久久久久久| 国产精品久久综合| 一区二区三区在线观看国产| 午夜久久电影网| 青青草伊人久久| 国产高清精品久久久久| av亚洲产国偷v产偷v自拍| 91精品国产欧美日韩| 2021中文字幕一区亚洲| 18涩涩午夜精品.www| 一区二区三区精品| 亚洲欧美一区二区三区国产精品| 精品欧美久久久| 亚洲视频香蕉人妖| 另类的小说在线视频另类成人小视频在线|