亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美色偷偷大香| 亚洲一区二区成人在线观看| 亚洲丝袜精品丝袜在线| 天堂在线亚洲视频| 国产成人高清视频| 欧美一区二区视频观看视频| 亚洲欧美自拍偷拍| 国产一区二区精品久久| 欧美日韩国产片| 亚洲美女电影在线| 国内偷窥港台综合视频在线播放| 日本高清不卡视频| 国产视频一区不卡| 麻豆精品一区二区av白丝在线| 91麻豆自制传媒国产之光| 久久久精品中文字幕麻豆发布| 日韩中文欧美在线| 色狠狠综合天天综合综合| 国产精品女上位| 国产成人综合亚洲网站| 欧美mv日韩mv亚洲| 青青国产91久久久久久| 91福利国产成人精品照片| 亚洲视频你懂的| 91小视频在线| 亚洲男同性视频| 91视频一区二区三区| 亚洲色大成网站www久久九九| 国产麻豆精品视频| 精品理论电影在线观看| 精品中文字幕一区二区小辣椒| 欧美三级日韩在线| 亚洲午夜精品网| 欧美亚洲禁片免费| 亚洲一区二区在线观看视频| 色老头久久综合| 一区二区成人在线观看| 一本色道a无线码一区v| 亚洲天堂精品在线观看| 91色在线porny| 亚洲精品免费在线| 欧美视频中文一区二区三区在线观看 | 波波电影院一区二区三区| 国产欧美精品在线观看| 国产大陆精品国产| 中文字幕一区二区三| 91在线视频观看| 亚洲免费观看在线视频| 色999日韩国产欧美一区二区| 亚洲久草在线视频| 欧美日韩亚洲国产综合| 亚洲高清三级视频| 日韩三级视频中文字幕| 国产精品主播直播| 亚洲天堂免费在线观看视频| 欧美色图免费看| 极品少妇xxxx精品少妇偷拍| 国产精品久久久久婷婷| 欧美性大战久久久久久久| 日本视频一区二区三区| 国产女同性恋一区二区| 在线亚洲欧美专区二区| 久久国产日韩欧美精品| 国产精品久久久久精k8| 精品视频一区三区九区| 狠狠久久亚洲欧美| 一区二区三区自拍| 精品欧美一区二区在线观看| 大胆欧美人体老妇| 亚洲mv大片欧洲mv大片精品| 精品粉嫩超白一线天av| 一本久久综合亚洲鲁鲁五月天 | 日韩精品影音先锋| 成人在线一区二区三区| 亚洲福利视频一区二区| 久久综合999| 欧美性色黄大片| 国产精品69久久久久水密桃| 亚洲一区二区五区| 中文字幕欧美国产| 欧美一区二区三区免费观看视频| 不卡视频一二三| 久久国产乱子精品免费女| 一区二区三区在线高清| 久久免费视频色| 欧美老年两性高潮| 色综合色狠狠天天综合色| 精彩视频一区二区三区| 亚洲与欧洲av电影| 中文av字幕一区| 欧美成人aa大片| 欧美久久久久久久久中文字幕| 丁香天五香天堂综合| 日韩电影一二三区| 亚洲自拍另类综合| 国产女人18毛片水真多成人如厕| 欧美精品自拍偷拍动漫精品| 色综合久久综合网欧美综合网| 国产在线国偷精品免费看| 偷拍亚洲欧洲综合| 亚洲午夜久久久久| 亚洲欧美电影院| 欧美国产禁国产网站cc| 亚洲精品在线电影| 6080日韩午夜伦伦午夜伦| 91成人在线精品| 色综合咪咪久久| 色婷婷综合久久久久中文一区二区| 成人毛片在线观看| 丰满白嫩尤物一区二区| 国产精品88av| 国产成人精品一区二区三区网站观看| 六月婷婷色综合| 美女视频黄a大片欧美| 午夜在线成人av| 香蕉影视欧美成人| 日韩精品一二三| 日韩国产一区二| 日本怡春院一区二区| 午夜精品久久久久久久久久| 亚洲成人自拍一区| 日本最新不卡在线| 日本vs亚洲vs韩国一区三区| 青青草成人在线观看| 奇米影视7777精品一区二区| 蜜臀久久久99精品久久久久久| 人禽交欧美网站| 韩国精品一区二区| 成人小视频在线| 99精品视频在线观看免费| 99久久免费精品| 一本久道久久综合中文字幕| 在线免费观看不卡av| 欧美午夜免费电影| 欧美一区二区三区免费大片| 久久先锋影音av鲁色资源网| 国产日韩视频一区二区三区| 亚洲视频中文字幕| 午夜精品福利在线| 另类欧美日韩国产在线| 国产在线播放一区三区四| 国产成人一区在线| 色综合天天综合给合国产| 日韩免费视频一区| 久久人人超碰精品| 日韩美女视频19| 天天射综合影视| 国产精品一区二区三区乱码| 91浏览器在线视频| 91精品国产综合久久福利软件| 2021中文字幕一区亚洲| 国产精品成人一区二区艾草 | 精品欧美一区二区三区精品久久 | 欧美一区2区视频在线观看| 精品国产人成亚洲区| 中文字幕中文在线不卡住| 亚洲成人免费电影| 国产精品一区二区无线| 欧洲精品一区二区三区在线观看| 91精品国模一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 亚洲香肠在线观看| 国产一区二区三区在线看麻豆| 91欧美一区二区| 精品国产乱子伦一区| 亚洲国产成人tv| 成人免费的视频| 精品日韩欧美在线| 亚洲成a人v欧美综合天堂下载| 成人永久看片免费视频天堂| 在线不卡a资源高清| 亚洲欧美在线高清| 国内久久精品视频| 欧美一区二区私人影院日本| 亚洲人成网站精品片在线观看| 精一区二区三区| 制服.丝袜.亚洲.中文.综合| 亚洲精品视频免费观看| 国产伦精品一区二区三区视频青涩| 欧美日韩国产综合一区二区三区| 国产精品素人视频| 国产九九视频一区二区三区| 欧美日韩中文字幕一区二区| 亚洲欧洲日韩在线| 国产成人精品一区二区三区四区| 欧美成人福利视频| 日本欧洲一区二区| 51精品久久久久久久蜜臀| 一区二区三区四区亚洲| 不卡av免费在线观看| 国产亚洲视频系列| 国内精品免费在线观看| 日韩一本二本av| 日韩成人伦理电影在线观看| 欧美日韩黄色影视| 视频一区视频二区在线观看| 欧美撒尿777hd撒尿| 婷婷综合在线观看| 91精品国产高清一区二区三区蜜臀 | 国内成+人亚洲+欧美+综合在线|