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

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

?? nonplayondecision.cpp

?? 2006年世界杯足球賽2D仿真組第16名的源代碼。在此代碼上隨便改改
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/* *  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: Mohammad Salehe * *  Released on Monday 1 August 2005, 10 Mordad 1384 by Mersad RoboCup Team. *  For more information please read README file.*/#include <cassert>#include <cmath>#include <Logger.h>#include <Types.h>#include <Command.h>#include <BasicTurn.h>#include <BasicKick.h>#include <BasicDash.h>#include <Pass.h>#include <Shoot.h>#include <NonPlayOn.h>#include <Offense.h>#include <Defense.h>#include <NonPlayOnDecision.h>#include <Intercept.h>#include <GoaliePositioning.h>#include <AdvancedAgent.h>using namespace std;#define NON_PLAY_ON_DECISION_LOG1#define NON_PLAY_ON_DECISION_LOG2#define FREE_KICK_ADVICER 5#define GOTOKICK_NUM 0#define BACKBALL_NUM 1#define BEFOREKICKOFF_NUM 2#define DEFENSE_NUM 3#define OFFENSE_NUM 4 #define PASS_NUM 5#define SHOOT_NUM 6#define INTERCEPT_NUM 7#define GOALIE_POSITIONING_NUM 8#define GOALIE_CATCH_OFFENSE_NUM 9// NOTE : All of player numbers in this file are Uniform Numbers (not Post Numbers)NonPlayOnDecision::NonPlayOnDecision(const WorldModel *worldModel):				BodyDecision(worldModel){	addAdvancedAction(new NonPlayOnGotoKick(worldModel), //0		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new NonPlayOnBackBall(worldModel), //1		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new NonPlayOnBeforeKickOff(worldModel), //2		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new Defense(worldModel), //3		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new Offense(worldModel), //4		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new Pass(worldModel), //5		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new Shoot(worldModel), //6		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new Intercept(worldModel), //7		AdvancedActionWeights(0, 1, 1), 1);	addAdvancedAction(new GoaliePositioning(worldModel), //8		AdvancedActionWeights(0, 1, 1), 0);	addAdvancedAction(new GoalieCatchOffense(worldModel), //9		AdvancedActionWeights(0, 1, 1), 0);	dynamic_cast<Pass *>(advancedActions[PASS_NUM])->			setCurKickCalculate(&worldModel->getCurKickCalculate());}NonPlayOnDecision::~NonPlayOnDecision(){}void NonPlayOnDecision::decide(int quickLevel, Form &form,		const Library &library){	Point positions[11];#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NonPlayOnDecision" << endl;#endif	form.headForm.tnMode = TNM_LOOK_NORMALLY;	form.sayForm.reset();	if (DefenseOffenseChoice() == 0)	{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NonPlayOnDecision Returning empty" << endl;#endif		command = new EmptyCommand(AT_NONE);		return;	}	resetQuickLevels();	command = NULL;		getCurrentHomePoints(positions, library);	switch (worldModel->getPlayMode())	{	case PM_BEFORE_KICK_OFF:	case PM_GOAL:	case PM_GOAL_OPP:#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE1" << endl;#endif		if (selectBallKicker(positions) == 1)			dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->				setIsKicker(false);		else			dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->				setIsKicker(true);		advancedActions[BEFOREKICKOFF_NUM]->getValue(library);		advancedActions[BEFOREKICKOFF_NUM]->execute(form, library);		command = advancedActions[BEFOREKICKOFF_NUM]->getCommand();		return;			case PM_KICK_OFF:  #ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2" << endl;#endif		if (selectBallKicker(positions) == 1)		{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2 1" << endl;#endif			if (selectBallKicker(positions) == 1)				dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->					setIsKicker(false);			else				dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->					setIsKicker(true);			advancedActions[BEFOREKICKOFF_NUM]->getValue(library);			advancedActions[BEFOREKICKOFF_NUM]->execute(form, library);			command = advancedActions[BEFOREKICKOFF_NUM]->getCommand();			return;		}		else		{			form.headForm.tnMode = TNM_LOOK_CAREFULLY;#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2 2" << endl;#endif			advancedActions[GOTOKICK_NUM]->getValue(library);			if (dynamic_cast<NonPlayOnGotoKick *>(advancedActions[GOTOKICK_NUM])					->getStatus() == 1)			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2 3" << endl;#endif				advancedActions[GOTOKICK_NUM]->execute(form, library);				command = advancedActions[GOTOKICK_NUM]->getCommand();				return;			}			else if (backBallChoice() == 1)			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2 4" << endl;#endif				// No need to the following line				if (advancedActions[GOTOKICK_NUM]->getCommand())					delete advancedActions[GOTOKICK_NUM]->getCommand();				quickLevels[PASS_NUM] = 1;				quickLevels[SHOOT_NUM] = 1;				form.sayForm.reset();				BodyDecision::decide(quickLevel, form, library);				return;			}			else			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE2 5" << endl;#endif				// No need to the following line				if (advancedActions[GOTOKICK_NUM]->getCommand())					delete advancedActions[GOTOKICK_NUM]->getCommand();				advancedActions[BACKBALL_NUM]->getValue(library);				advancedActions[BACKBALL_NUM]->execute(form, library);				command = advancedActions[BACKBALL_NUM]->getCommand();				return;			}		}		break;	case PM_KICK_OFF_OPP:#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE3" << endl;#endif		if (selectBallKicker(positions) == 1)			dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->				setIsKicker(false);		else			dynamic_cast<NonPlayOnBeforeKickOff *>(advancedActions[BEFOREKICKOFF_NUM])->				setIsKicker(true);		advancedActions[BEFOREKICKOFF_NUM]->getValue(library);		advancedActions[BEFOREKICKOFF_NUM]->execute(form, library);		command = advancedActions[BEFOREKICKOFF_NUM]->getCommand();		return;		break;	case PM_FREE_KICK:	case PM_KICK_IN:	case PM_CORNER_KICK:#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4" << endl;#endif		selectBallKickerSay(positions, form);		if (selectBallKicker(positions) == 1)		{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 1" << endl;#endif			if (worldModel->getBody().isGoalie())			{				advancedActions[GOALIE_POSITIONING_NUM]->getValue(library);				advancedActions[GOALIE_POSITIONING_NUM]->execute(form, library);				command = advancedActions[GOALIE_POSITIONING_NUM]->getCommand();				return;			}			else			{					if (!worldModel->getBody().isGoalie() &&					worldModel->getPlayMode() == PM_FREE_KICK &&					worldModel->getVirtualPlayMode() == VPM_GOALIE_CATCH_BALL)				{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 1 2" << endl;#endif					advancedActions[GOALIE_CATCH_OFFENSE_NUM]->getValue(library);					advancedActions[GOALIE_CATCH_OFFENSE_NUM]->						execute(form, library);					command = advancedActions[GOALIE_CATCH_OFFENSE_NUM]->						getCommand();					return;				}				advancedActions[OFFENSE_NUM]->getValue(library);				advancedActions[OFFENSE_NUM]->execute(form, library);				command = advancedActions[OFFENSE_NUM]->getCommand();				return;			}		}		else		{			form.headForm.tnMode = TNM_LOOK_CAREFULLY;#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 2" << endl;#endif			if (worldModel->getBody().isGoalie() &&				worldModel->getPlayMode() == PM_FREE_KICK &&				worldModel->getVirtualPlayMode() == VPM_GOALIE_CATCH_BALL)			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 3 1" << endl;#endif				if (backBallChoice() == 1)				{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 3 1 1" << endl;#endif					advancedActions[GOALIE_CATCH_OFFENSE_NUM]->getValue(library);					advancedActions[GOALIE_CATCH_OFFENSE_NUM]->execute(form, library);					if (dynamic_cast<GoalieCatchOffense *>							(advancedActions[GOALIE_CATCH_OFFENSE_NUM])->							getStatus() == 1)					{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 3.2" << endl;#endif						command = advancedActions[GOALIE_CATCH_OFFENSE_NUM]->							getCommand();						return;					}					else					{						if (worldModel->getPlayMode() == PM_FREE_KICK &&							worldModel->getVirtualPlayMode() == 							VPM_GOALIE_CATCH_BALL)						{							Point virtualPassPoint(-33, 28);														LOG << "NPP FKick to " << virtualPassPoint << endl;							command = FastKickToPoint(AT_PASS, virtualPassPoint,							worldModel->getBall(), worldModel->getBody()).								getCommand();							LOG << "NPO cmd:" << command->toString() << endl;							form.sayForm.interceptNum = 6;							form.sayForm.beforePassSay = true;							form.sayForm.freeKickSay = false;							return;						}						delete advancedActions[GOALIE_CATCH_OFFENSE_NUM]->getCommand();						quickLevels[PASS_NUM] = 1;						form.sayForm.reset();						BodyDecision::decide(quickLevel, form, library);						return;					}				}				else				{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 3 1 2" << endl;#endif					advancedActions[BACKBALL_NUM]->getValue(library);					advancedActions[BACKBALL_NUM]->execute(form, library);					command = advancedActions[BACKBALL_NUM]->getCommand();					return;				}				break;			}			advancedActions[GOTOKICK_NUM]->getValue(library);			if (dynamic_cast<NonPlayOnGotoKick *>(advancedActions[GOTOKICK_NUM])					->getStatus() == 1)			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 3" << endl;#endif				advancedActions[GOTOKICK_NUM]->execute(form, library);				command = advancedActions[GOTOKICK_NUM]->getCommand();				return;			}			else if (backBallChoice() == 1)			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 4" << endl;#endif				// No need to the following line				if (advancedActions[GOTOKICK_NUM]->getCommand())					delete advancedActions[GOTOKICK_NUM]->getCommand();				quickLevels[PASS_NUM] = 1;				quickLevels[SHOOT_NUM] = 1;				if (worldModel->getPlayMode() == PM_FREE_KICK &&					worldModel->getVirtualPlayMode() == VPM_INDIRECT_FREE_KICK)				{					quickLevels[SHOOT_NUM] = -1;				}				form.sayForm.reset();				BodyDecision::decide(quickLevel, form, library);				return;			}			else			{#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE4 5" << endl;#endif				// No need to the following line				if (advancedActions[GOTOKICK_NUM]->getCommand())					delete advancedActions[GOTOKICK_NUM]->getCommand();				advancedActions[BACKBALL_NUM]->getValue(library);				advancedActions[BACKBALL_NUM]->execute(form, library);				command = advancedActions[BACKBALL_NUM]->getCommand();				return;			}		}		break;	case PM_FREE_KICK_OPP:	case PM_KICK_IN_OPP:	case PM_CORNER_KICK_OPP:#ifdef NON_PLAY_ON_DECISION_LOG1LOG << "NONPLAYON: MODE5" << endl;#endif		if (worldModel->getBody().isGoalie())		{			advancedActions[GOALIE_POSITIONING_NUM]->getValue(library);			advancedActions[GOALIE_POSITIONING_NUM]->execute(form, library);			command = advancedActions[GOALIE_POSITIONING_NUM]->getCommand();			return;		}		else		{				advancedActions[DEFENSE_NUM]->getValue(library);			advancedActions[DEFENSE_NUM]->execute(form, library);			command = advancedActions[DEFENSE_NUM]->getCommand();			return;		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本伦理一区二区| 亚洲综合在线观看视频| 国产精品国产三级国产普通话99| 亚洲精品久久嫩草网站秘色| 精品一区二区影视| 91性感美女视频| 777奇米成人网| 伊人色综合久久天天人手人婷| 奇米精品一区二区三区在线观看 | 久久网这里都是精品| 一区二区三区精密机械公司| 国产精品99久久久久久宅男| 欧美精品在线一区二区| 亚洲精品欧美专区| www.在线欧美| 国产精品美女久久久久高潮| 久久国产福利国产秒拍| 欧美精品一卡二卡| 亚洲乱码国产乱码精品精的特点 | 国产欧美一区二区精品婷婷| 麻豆精品视频在线观看免费| 欧美丰满少妇xxxxx高潮对白 | 久久综合999| 美脚の诱脚舐め脚责91| 69堂成人精品免费视频| 午夜影院久久久| 欧美性大战xxxxx久久久| 亚洲精选免费视频| 一本一本久久a久久精品综合麻豆| 国产精品久久久久久久久免费樱桃| 国产成人综合自拍| 国产视频一区二区在线观看| 国产一区二区视频在线| 久久久精品国产免大香伊 | 91年精品国产| 亚洲欧美日韩国产中文在线| 91浏览器在线视频| 一区二区三区四区不卡在线| 一本色道久久加勒比精品| 亚洲激情网站免费观看| 欧美午夜电影网| 美女在线视频一区| 久久久精品天堂| 99在线精品免费| 亚洲高清在线精品| 欧美tickling网站挠脚心| 国产一区亚洲一区| 中文在线免费一区三区高中清不卡 | 久久99精品国产.久久久久久| 91精品久久久久久蜜臀| 偷拍与自拍一区| 精品国产一区久久| 国产宾馆实践打屁股91| 综合婷婷亚洲小说| 在线电影一区二区三区| 国产一区二三区| 中文字幕在线观看一区| 欧美日韩一级视频| 国产美女精品人人做人人爽| 国产精品美女视频| 91精品国产一区二区三区香蕉| 久久精品国产亚洲a| 国产精品久久久久久久岛一牛影视| 在线欧美日韩国产| 国产一区二区三区美女| 亚洲女人小视频在线观看| 欧美电影免费观看高清完整版在线 | 欧美国产精品一区二区| 91国在线观看| 国产最新精品免费| 亚洲午夜久久久久久久久电影网| 精品久久久久一区| 欧美色电影在线| 成人高清视频在线| 强制捆绑调教一区二区| 国产精品久久久久久久久快鸭| 91精品国产一区二区| 99riav一区二区三区| 久久精品国产精品亚洲综合| 亚洲欧美视频一区| 国产日韩精品一区二区三区 | 亚洲图片欧美色图| 国产亚洲一区二区三区在线观看| 欧美性猛交xxxx乱大交退制版| 国产在线不卡一卡二卡三卡四卡| 亚洲自拍偷拍麻豆| 国产精品国产三级国产aⅴ原创| 88在线观看91蜜桃国自产| 一本一道综合狠狠老| 国产a久久麻豆| 老司机精品视频线观看86 | 国产精品污污网站在线观看| 欧美一级理论片| 欧美日韩美少妇| 一本久久精品一区二区| 国产成人在线观看| 精品一区二区三区免费播放| 亚洲成人综合在线| 亚洲一二三区在线观看| 国产精品美女一区二区三区| 久久女同精品一区二区| 日韩精品一区二| 欧美电影精品一区二区| 91精品国产91综合久久蜜臀| 欧美无人高清视频在线观看| 91伊人久久大香线蕉| 91免费观看在线| 97精品久久久久中文字幕| www.亚洲精品| 色综合久久久久综合99| 色综合久久88色综合天天| 欧美日韩五月天| 色综合久久久久久久久久久| 91无套直看片红桃| 色94色欧美sute亚洲线路一ni| 成人精品gif动图一区| heyzo一本久久综合| 99久久久无码国产精品| 99免费精品在线| 在线亚洲一区二区| 欧美日韩国产综合一区二区三区 | 亚洲午夜免费福利视频| 香蕉影视欧美成人| 日本在线不卡一区| 激情综合五月婷婷| 国产高清不卡二三区| 成人app在线| 日本高清免费不卡视频| 欧美日韩国产一区二区三区地区| 欧美美女一区二区在线观看| 7777精品伊人久久久大香线蕉最新版| 日韩亚洲国产中文字幕欧美| 精品久久久久久久一区二区蜜臀| 久久久久久久综合狠狠综合| 国产精品日韩精品欧美在线| **性色生活片久久毛片| 亚洲国产成人av| 韩国女主播成人在线观看| www.色综合.com| 欧美丰满美乳xxx高潮www| 亚洲精品在线一区二区| 国产精品视频麻豆| 亚洲午夜国产一区99re久久| 美国一区二区三区在线播放| 成人午夜视频网站| 欧美日韩在线播放一区| 精品免费国产一区二区三区四区| 国产日产欧产精品推荐色| 一区二区三区在线免费播放 | 亚洲成年人网站在线观看| 久久精品国产免费| 在线中文字幕一区二区| 久久综合色婷婷| 一区二区三国产精华液| 蜜桃久久精品一区二区| 91蜜桃免费观看视频| 欧美一区二区三区色| 国产精品美女久久久久久久| 视频在线观看国产精品| 成人免费视频视频在线观看免费| 欧美午夜片在线看| 中文字幕不卡在线观看| 免费在线成人网| 99久久精品免费精品国产| 日韩精品中午字幕| 亚洲一区在线观看免费| 国产麻豆91精品| 制服丝袜亚洲网站| 中文字幕综合网| 国产一区二区免费看| 在线播放91灌醉迷j高跟美女| 中文字幕高清不卡| 激情综合色综合久久综合| 欧美日韩在线播放三区四区| 亚洲国产精品t66y| 精品一区二区三区av| 欧美剧情片在线观看| 一区二区三区四区中文字幕| 国产黑丝在线一区二区三区| 欧美精品日日鲁夜夜添| 一区二区三区在线视频观看58| 成人免费毛片app| 久久精品一区二区| 黄页视频在线91| 日韩欧美一区电影| 午夜精品视频在线观看| 色婷婷综合久久久久中文| 成人免费在线播放视频| 国产精品18久久久久久久久| 日韩欧美电影在线| 男女视频一区二区| 欧美一区二区精品久久911| 午夜精品免费在线观看| 欧美日韩亚洲丝袜制服| 亚洲亚洲人成综合网络| 91久久精品一区二区三| 亚洲精品成人a在线观看| 91麻豆免费视频| 亚洲私人影院在线观看| 色婷婷av一区二区|