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

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

?? syncedagent.cpp

?? 2006年世界杯足球賽2D仿真組第16名的源代碼。在此代碼上隨便改改
?? CPP
字號:
/* *  Copyright 2002-2005, Mersad Team, Allameh Helli High School (NODET). * *  This program is free software, you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *  GNU Library General Public License for more details. * *  This file is created by: Ahmad Boorghany * *  Released on Monday 1 August 2005, 10 Mordad 1384 by Mersad RoboCup Team. *  For more information please read README file.*/#include <iostream>#include <unistd.h>#include <Logger.h>#include <SyncedAgent.h>#include <OnlineConnection.h>using namespace std;SyncedAgent::SyncedAgent(int argc, char **argv): BasicAgent(argc, argv){	seeReceiveMS = 0;	seeReceivedFlag = false;	quickDecideFlag = false;	bodyCycleCommandSentFlag = false;	headCycleCommandSentFlag = false;	bodyCycleCommandLostFlag = false;	headCycleCommandLostFlag = false;}SyncedAgent::~SyncedAgent(){}void SyncedAgent::senseBody(const SExpression &exp){	BasicAgent::senseBody(exp);	if (isHeadCycleCommandLost() && isHeadCycleCommandSent())		recoverSeeReceiveMSAfterChangeView(changeViewCycleCommand);	delete lastBodyCycleCommand;	lastBodyCycleCommand = bodyCycleCommand;	bodyCycleCommand = NULL;	if (!lastBodyCycleCommand) // Just happen when we hadn't any time							   // in last cycle to start deciding at least.		lastBodyCycleCommand = new EmptyCommand(AT_NONE);	setBodyCycleCommandSent(false);	delete sayCycleCommand;	sayCycleCommand = NULL;	delete pointToCycleCommand;	pointToCycleCommand = NULL;	delete changeViewCycleCommand;	changeViewCycleCommand = NULL;	delete attentionCycleCommand;	attentionCycleCommand = NULL;	delete headCycleCommand;	headCycleCommand = NULL;	setHeadCycleCommandSent(false);	setSenseBodyReceived(true);	setQuickDecide(false);	setSeeReceived(false);	setSeeReceiveMSAfterSenseBody();//	usleep(1); MEISAM2005}void SyncedAgent::see(const SExpression &exp){	BasicAgent::see(exp);	setSeeReceived(true);	setSeeReceiveMSAfterSee();}void SyncedAgent::hear(const SExpression &exp){	BasicAgent::hear(exp);}void SyncedAgent::fullState(const SExpression &exp){	BasicAgent::fullState(exp);}void SyncedAgent::serverParam(const SExpression &exp){	BasicAgent::serverParam(exp);}void SyncedAgent::playerParam(const SExpression &exp){	BasicAgent::playerParam(exp);}void SyncedAgent::playerType(const SExpression &exp){	BasicAgent::playerType(exp);}void SyncedAgent::init(const SExpression &exp){	BasicAgent::init(exp);}void SyncedAgent::think(const SExpression &exp){	BasicAgent::think(exp);}void SyncedAgent::changePlayerType(const SExpression &exp){	BasicAgent::changePlayerType(exp);}bool SyncedAgent::decide(){	LOG << "SyncedAgent::decide" << endl;	if (!isSenseBodyReceived())		return true;	string queue = "";	// bodyCycleCommand Deciding	if (worldModel->getCurTime() < BODY_CYCLE_COMMAND_LATE ||		worldModel->getBody().getTackleExpires() > 0)		bodyCycleCommand = new EmptyCommand(AT_NONE);	if (isBodyCycleCommandDecidePermitted())	{//		LOG << "SyncedAgent:: permission OK..." << endl;		if (!bodyCycleCommand)		{//			LOG << "SyncedAgent:: bodyCycleCommand ... OK ...." << endl;			if (isSeeReceived()) {//				LOG << "SyncedAgent:: seeReceived ... OK ...." << endl;				bodyDecide(getQuickLevel());			}			else if (getSeeReceiveMS() > (SENSE_BODY_STEP / 2 - 3))		    {				bool wmUpdateNecessary = bodyDecide(getQuickLevel());				if (getSeeReceiveMS() < (SENSE_BODY_STEP - 3) &&					wmUpdateNecessary)					setQuickDecide(true);			}		}	    else if (isSeeReceived() &&				 isQuickDecide() &&				 !isBodyCycleCommandSent())		{			LOG << "SyncedAgent:: second if .... OK ..." <<endl;			bodyDecide(getQuickLevel());			setQuickDecide(false);		}	}	// bodyCycleCommand Sending	if (bodyCycleCommand &&		isBodyCycleCommandSendPermitted() &&		!isBodyCycleCommandSent() &&		!isQuickDecide() &&		!isLateForSending())	{		queue += bodyCycleCommand->toString();		setBodyCycleCommandSent(true);	}	// headCycleCommand and sayCycleCommand and PointToCycleCommand Deciding	if (worldModel->getCurTime() < HEAD_CYCLE_COMMAND_LATE)	{		headCycleCommand = new EmptyCommand(AT_NONE);		changeViewCycleCommand = new EmptyCommand(AT_NONE);		sayCycleCommand = new EmptyCommand(AT_NONE);		attentionCycleCommand = new EmptyCommand(AT_NONE);		pointToCycleCommand = new EmptyCommand(AT_NONE);	}	if (!headCycleCommand &&		isHeadCycleCommandDecidePermitted())	{		if (isSeeReceived() ||			getSeeReceiveMS() > (SENSE_BODY_STEP - 3))		{			headDecide();			sayDecide();			pointToDecide();		}	}	// headCycleCommand and sayCycleCommand and PointToCycleCommand Sending	if (headCycleCommand &&		isHeadCycleCommandSendPermitted() &&		!isHeadCycleCommandSent() &&		!isLateForSending())	{		queue += headCycleCommand->toString();		queue += changeViewCycleCommand->toString();		setHeadCycleCommandSent(true);		queue += sayCycleCommand->toString();		queue += attentionCycleCommand->toString();		queue += pointToCycleCommand->toString();		setSeeReceiveMSAfterChangeView(changeViewCycleCommand);	}	if (queue != "")	{		connection->send(queue);		LOG << "SendStr: " << queue << endl;	}	return true;}bool SyncedAgent::synchronize(){//	LOG << "SyncedAgent::synchronize" << endl;	string message;	if (dynamic_cast<OnlineConnection *>(connection) &&		connection->receive(message) == 1)	{		dynamic_cast<OnlineConnection *>(connection)->setLocalBuffer(message);		return true;	}	string queue = "";	bool emergencySendFlag = false;	// emergency sending system	if (isSenseBodyReceived() &&		worldModel->getTimer().now() < (SENSE_BODY_STEP - 2) &&		((worldModel->getTimer().now() >				getSeeReceiveMS() + (SENSE_BODY_STEP / 6.00) &&		  getSeeReceiveMS() > (SENSE_BODY_STEP / 2.00)) ||		 worldModel->getTimer().now() > (SENSE_BODY_STEP * 0.90)))	{		if (bodyCycleCommand && !isBodyCycleCommandSent())		{			LOG << "Emergency Sending bodyCycleCommand." << endl;			queue += bodyCycleCommand->toString();			setBodyCycleCommandSent(true);			emergencySendFlag = true;		}		if (!headCycleCommand &&			worldModel->getCurTime() >= HEAD_CYCLE_COMMAND_LATE)		{			LOG << "Emergency Sending headCycleCommand." << endl;			headDecide();			queue += headCycleCommand->toString();			queue += changeViewCycleCommand->toString();			setHeadCycleCommandSent(true);			sayDecide();			queue += sayCycleCommand->toString();			queue += attentionCycleCommand->toString();			pointToDecide();			queue += pointToCycleCommand->toString();			setSeeReceiveMSAfterChangeView(changeViewCycleCommand);			emergencySendFlag = true;		}	}	if (queue != "")	{		connection->send(queue);		LOG << "SendStr: " << queue << endl;	}	if (emergencySendFlag)		OFFLOG << "EmgSend" << endl;	if (worldModel->getTimer().now() > SERVER_TIME_OUT)	{		LOG << "Server does not respond in the expected time." << endl;		cout << "Server does not respond in the expected time." << endl;		return false;	}	return true;}bool SyncedAgent::isLateForSending() const{	if (worldModel->getTimer().now() > (SENSE_BODY_STEP - 2))		return true;	return false;}void SyncedAgent::setSeeReceiveMSAfterSee(){	switch (worldModel->getBody().getVMWidth())	{	case VMW_NARROW:		seeReceiveMS = curReceiveMS + (SEE_STEP / 2);		break;	case VMW_NORMAL:		seeReceiveMS = curReceiveMS + SEE_STEP;		break;	case VMW_WIDE:		seeReceiveMS = curReceiveMS + (SEE_STEP * 2);		break;	}	LOG << "seeReceiveMS: " << seeReceiveMS << endl;}void SyncedAgent::setSeeReceiveMSAfterSenseBody(){	seeReceiveMS -= SENSE_BODY_STEP;	LOG << "seeReceiveMS: " << seeReceiveMS << endl;}void SyncedAgent::setSeeReceiveMSAfterChangeView(		const Command *command){	const ChangeViewCommand *changeViewCommand =			dynamic_cast<const ChangeViewCommand *>(command);	if (!changeViewCommand)		return;	seeReceiveMS = getLastSeeReceiveMS();	switch(changeViewCommand->getWidth())	{	case VMW_NARROW:		seeReceiveMS += (int)(SEE_STEP / 2);		break;	case VMW_NORMAL:		seeReceiveMS += SEE_STEP;		break;	case VMW_WIDE:		seeReceiveMS += SEE_STEP * 2;		break;	}	LOG << "seeReceiveMS: " << seeReceiveMS << endl;}void SyncedAgent::recoverSeeReceiveMSAfterChangeView(const Command *command){	const ChangeViewCommand *changeViewCommand =			dynamic_cast<const ChangeViewCommand *>(command);	if (!changeViewCommand)		return;	seeReceiveMS = getLastSeeReceiveMS();	switch(changeViewCommand->getWidth())	{	case VMW_NARROW:		seeReceiveMS -= (int)(SEE_STEP / 2);		break;	case VMW_NORMAL:		seeReceiveMS -= SEE_STEP;		break;	case VMW_WIDE:		seeReceiveMS -= SEE_STEP * 2;		break;	}}int SyncedAgent::getLastSeeReceiveMS() const{	switch (worldModel->getBody().getVMWidth())	{		case VMW_NARROW:			return (int)(seeReceiveMS - (SEE_STEP / 2));		case VMW_NORMAL:			return (int)(seeReceiveMS - SEE_STEP);		case VMW_WIDE:			return (int)(seeReceiveMS - SEE_STEP * 2);	}	return 0;}void SyncedAgent::logEndInf(){	LOG << "End of cycle." << endl;	OFFLOG << "EndInf: " << (int)(bodyCycleCommand != NULL)						 << (int)(isBodyCycleCommandSent())						 << (int)(headCycleCommand != NULL)						 << (int)(isHeadCycleCommandSent()) << endl;}ViewModeWidth SyncedAgent::getSyncedWide() const{	if (getLastSeeReceiveMS() <= (SENSE_BODY_STEP / 2.0) - (SENSE_BODY_STEP / 20.0))		return VMW_WIDE;	return VMW_NARROW;}ViewModeWidth SyncedAgent::getSyncedNormal() const{	if (getLastSeeReceiveMS() >= (SENSE_BODY_STEP / 2.0) - (SENSE_BODY_STEP / 6.66) &&		getLastSeeReceiveMS() < (SENSE_BODY_STEP / 2.0) - (SENSE_BODY_STEP / 50.0))		return VMW_NARROW;	return VMW_NORMAL;}ViewModeWidth SyncedAgent::getSyncedNarrow() const{	if (getLastSeeReceiveMS() <= (SENSE_BODY_STEP / 2.0) - (SENSE_BODY_STEP / 6.66))		return VMW_NORMAL;	return VMW_NARROW;}int SyncedAgent::getQuickLevel(){	if (worldModel->getTimer().now() < ZERO_QUICK_LEVEL_MS)		return 0;	return 1;}void SyncedAgent::checkForLosts(){	// Checking for bodyCycleCommand	setBodyCycleCommandLost(false);	if (bodyCycleCommand && !isBodyCycleCommandSent())	{		setBodyCycleCommandLost(true);		LOG << "*** Body command didn't send ***" << endl;	}	else if (isBodyCycleCommandSent())	{		if ((dynamic_cast<KickCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isKickCountChanged()) ||			(dynamic_cast<DashCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isDashCountChanged()) ||			(dynamic_cast<TurnCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isTurnCountChanged()) ||			(dynamic_cast<CatchCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isCatchCountChanged()) ||			(dynamic_cast<MoveCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isMoveCountChanged()) ||			(dynamic_cast<TackleCommand *>(bodyCycleCommand) &&			 !worldModel->getBody().isTackleCountChanged()))		{			if ((dynamic_cast<KickCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isKickCountChanged()) ||				(dynamic_cast<DashCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isDashCountChanged()) ||				(dynamic_cast<TurnCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isTurnCountChanged()) ||				(dynamic_cast<CatchCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isCatchCountChanged()) ||				(dynamic_cast<MoveCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isMoveCountChanged()) ||				(dynamic_cast<TackleCommand *>(lastBodyCycleCommand) &&				 worldModel->getBody().isTackleCountChanged()))			{				delete bodyCycleCommand;				bodyCycleCommand = lastBodyCycleCommand;				lastBodyCycleCommand = new EmptyCommand(AT_NONE);				LOG << "*** Last losted Body command executed ***" << endl;			}			else			{				setBodyCycleCommandLost(true);				LOG << "*** Body command lost ***" << endl;			}		}	}	// Checking for headCycleCommand	setHeadCycleCommandLost(false);	if (headCycleCommand && !isHeadCycleCommandSent())	{		setHeadCycleCommandLost(true);		LOG << "*** Head command didn't send ***" << endl;	}	else if (isHeadCycleCommandSent() &&		!worldModel->getBody().isFocusCountChanged())	{		if (dynamic_cast<TurnNeckCommand *>(headCycleCommand) &&			 !worldModel->getBody().isTurnNeckCountChanged())		{			setHeadCycleCommandLost(true);			LOG << "*** Head command lost ***" << endl;		}	}}// Getting functionsint SyncedAgent::getSeeReceiveMS() const{	return seeReceiveMS;}bool SyncedAgent::isSeeReceived() const{	return seeReceivedFlag;}bool SyncedAgent::isSenseBodyReceived() const{	return senseBodyReceivedFlag;}bool SyncedAgent::isQuickDecide() const{	return quickDecideFlag;}bool SyncedAgent::isBodyCycleCommandSent() const{	return bodyCycleCommandSentFlag;}bool SyncedAgent::isHeadCycleCommandSent() const{	return headCycleCommandSentFlag;}bool SyncedAgent::isBodyCycleCommandLost() const{	return bodyCycleCommandLostFlag;}bool SyncedAgent::isHeadCycleCommandLost() const{	return headCycleCommandLostFlag;}// Setting functionsvoid SyncedAgent::setSeeReceiveMS(int seeReceiveMSArg){	seeReceiveMS = seeReceiveMSArg;}void SyncedAgent::setSeeReceived(bool seeReceivedFlagArg){	seeReceivedFlag = seeReceivedFlagArg;}void SyncedAgent::setSenseBodyReceived(bool senseBodyReceivedFlagArg){	senseBodyReceivedFlag = senseBodyReceivedFlagArg;}void SyncedAgent::setQuickDecide(bool quickDecideFlagArg){	quickDecideFlag = quickDecideFlagArg;}void SyncedAgent::setBodyCycleCommandSent(bool bodyCycleCommandSentFlagArg){	bodyCycleCommandSentFlag = bodyCycleCommandSentFlagArg;}void SyncedAgent::setHeadCycleCommandSent(bool headCycleCommandSentFlagArg){	headCycleCommandSentFlag = headCycleCommandSentFlagArg;}void SyncedAgent::setBodyCycleCommandLost(bool bodyCycleCommandLostFlagArg){	bodyCycleCommandLostFlag = bodyCycleCommandLostFlagArg;}void SyncedAgent::setHeadCycleCommandLost(bool headCycleCommandLostFlagArg){	headCycleCommandLostFlag = headCycleCommandLostFlagArg;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国内精品视频| 国产精品丝袜久久久久久app| 一区二区三区四区不卡在线| 色婷婷av一区二区三区软件| 亚洲免费观看高清完整版在线观看 | 欧美另类高清zo欧美| 爽好多水快深点欧美视频| 欧美日韩一级黄| 日韩精品乱码av一区二区| 日韩精品一区在线| 国产精品一二三四五| 日韩美女视频一区二区| 色呦呦国产精品| 日韩电影一区二区三区| 精品捆绑美女sm三区| 99久久精品国产导航| 亚洲一区二区三区三| 精品日韩欧美在线| av亚洲精华国产精华| 亚洲国产成人porn| 欧美大肚乱孕交hd孕妇| 99久久精品情趣| 亚洲.国产.中文慕字在线| 精品国产一区久久| 在线观看日韩电影| 国产尤物一区二区在线| 亚洲欧美成人一区二区三区| 欧美肥大bbwbbw高潮| 粉嫩在线一区二区三区视频| 亚洲va韩国va欧美va| 久久久夜色精品亚洲| 欧美色欧美亚洲另类二区| 久久成人免费网| 一二三区精品视频| 久久欧美一区二区| 欧美亚洲国产一区二区三区 | 国产一区二区伦理| 悠悠色在线精品| 久久综合九色综合久久久精品综合| 成人h动漫精品一区二| 日韩福利视频网| 伊人色综合久久天天| 久久精品男人天堂av| 欧美精品免费视频| av激情综合网| 激情综合色播五月| 亚洲一卡二卡三卡四卡| 日本一区免费视频| 日韩亚洲欧美一区| 欧美午夜片在线看| 高清国产一区二区三区| 麻豆精品一区二区三区| 亚洲一区二区av在线| 中文字幕精品一区二区精品绿巨人| 91精品欧美久久久久久动漫| 日本道精品一区二区三区| 成人午夜私人影院| 久久99日本精品| 日韩av成人高清| 亚洲国产精品综合小说图片区| 日韩毛片精品高清免费| 国产亚洲欧美日韩日本| 久久综合色播五月| 日韩欧美亚洲一区二区| 欧美电影在哪看比较好| 欧美日韩一区视频| 91久久精品一区二区| 91年精品国产| av一二三不卡影片| 成人高清免费在线播放| 国产麻豆视频一区| 精品一区二区三区不卡| 免费美女久久99| 美腿丝袜一区二区三区| 麻豆国产精品一区二区三区 | 国产精品91xxx| 国产风韵犹存在线视精品| 国产一区二区精品久久99| 国产精品影音先锋| 国产激情视频一区二区在线观看 | 中文字幕在线不卡一区| 国产精品蜜臀av| 自拍视频在线观看一区二区| 亚洲视频在线一区观看| 亚洲女同女同女同女同女同69| 椎名由奈av一区二区三区| 亚洲男人电影天堂| 一区二区三区欧美视频| 亚洲成av人片在线观看无码| 日韩精品成人一区二区在线| 秋霞午夜av一区二区三区| 精品一区二区免费| 顶级嫩模精品视频在线看| 成人黄色小视频在线观看| 91蜜桃婷婷狠狠久久综合9色| 色噜噜狠狠色综合中国| 精品视频1区2区3区| 日韩精品在线一区二区| 国产欧美一区二区精品婷婷 | 亚洲国产日韩一级| 日韩精品电影一区亚洲| 国产精品综合网| 91美女片黄在线观看| 91 com成人网| 国产亚洲精品精华液| 亚洲美女电影在线| 日韩av一区二区在线影视| 精品亚洲成av人在线观看| 99热这里都是精品| 欧美优质美女网站| 日韩欧美色电影| 国产夜色精品一区二区av| 亚洲精品国产第一综合99久久| 蜜桃视频在线观看一区| 国产成人亚洲综合a∨猫咪| 91丨九色丨蝌蚪丨老版| 欧美一区二区三区播放老司机| 中文字幕精品一区二区精品绿巨人| 亚洲专区一二三| 国产精品亚洲第一区在线暖暖韩国| 色综合天天天天做夜夜夜夜做| 91精品国产综合久久小美女| 久久久99久久精品欧美| 亚洲综合图片区| 大胆亚洲人体视频| 在线成人高清不卡| 国产精品美女久久久久久久| 日本aⅴ精品一区二区三区| av亚洲精华国产精华精| 精品国产麻豆免费人成网站| 一区二区三区久久| 风间由美中文字幕在线看视频国产欧美 | 久久精品一二三| 亚洲成人av福利| 99久久99久久久精品齐齐 | 国产午夜精品一区二区三区嫩草 | 中文乱码免费一区二区| 日本不卡一区二区| 色妹子一区二区| 久久久久久综合| 日韩精品1区2区3区| 色婷婷久久综合| 国产欧美一区二区三区沐欲| 蜜桃一区二区三区在线观看| 欧美色图第一页| 亚洲天天做日日做天天谢日日欢| 国产精品亚洲а∨天堂免在线| 欧美一级理论性理论a| 亚洲午夜久久久| 一本一道久久a久久精品 | 欧美一级生活片| 亚洲最大成人综合| 91视频国产观看| 国产精品久久久久影院老司 | 樱花影视一区二区| 不卡免费追剧大全电视剧网站| 久久综合久久鬼色| 经典一区二区三区| 精品入口麻豆88视频| 免费人成黄页网站在线一区二区| 7777精品伊人久久久大香线蕉的| 亚洲综合久久久| 色美美综合视频| 亚洲与欧洲av电影| 色综合一区二区三区| 亚洲欧美另类图片小说| 国产欧美一区视频| 美日韩黄色大片| 日韩视频在线观看一区二区| 一区二区三区四区在线| 91在线观看免费视频| 亚洲色图色小说| 99视频国产精品| 亚洲伦理在线精品| 欧美在线视频不卡| 午夜激情久久久| 精品美女一区二区| 激情综合网激情| 国产清纯美女被跳蛋高潮一区二区久久w| 日本不卡一区二区| 日韩美女一区二区三区四区| 久久黄色级2电影| 国产日韩高清在线| jlzzjlzz亚洲女人18| 亚洲美女视频在线| 欧美卡1卡2卡| 免费视频最近日韩| 国产无一区二区| 91在线视频18| 日韩国产高清影视| 精品国产凹凸成av人导航| 丁香婷婷综合色啪| 亚洲日本电影在线| 欧美精品久久一区| 精品在线亚洲视频| 中文字幕一区二区三区在线观看| 色一情一伦一子一伦一区| 日韩中文字幕不卡| 欧美国产成人在线| 欧美在线不卡视频|