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

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

?? clear.cpp

?? 2006年世界杯足球賽2D仿真組第16名的源代碼。在此代碼上隨便改改
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/* *  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 *  and is modified by: Meisam Vosoughpour * *  Released on Monday 1 August 2005, 10 Mordad 1384 by Mersad RoboCup Team. *  For more information please read README file.*/#include <cmath>#include <Clear.h>#include <Basics.h>#include <Logger.h>#include <BasicKick.h>#include <SayDecision.h>#include <AdvancedAgent.h>using namespace std;#define CLEAR_TO_PLAYER_DELTA_X 8#define CLEAR_LOG1// class ClearClear::Clear(const WorldModel *worldModel):		AdvancedAction(worldModel){}void Clear::execute(Form &form, const Library &library){	LOG << "Clear::execute" << endl;	command = clearCommand;	form.sayForm.beforePassSay = true;	form.sayForm.interceptNum = twoKickableInterceptNum;}float Clear::getValue(const Library &library){	Point kickPoint;	Vector goalVector;	int i;		twoKickableInterceptNum = 0;	float defaultClearWeight = 60;	LOG << "Clear::getValue" << endl;	if (!worldModel->isBallKickable())		return AD_MIN_VALUE;	if (worldModel->getBallStatus() == BS_KICKABLE_OPP ||		worldModel->getBallStatus() == BS_KICKABLE_BODY_OPP)	{		if (worldModel->getBall().getDistance(Point(52.5, 0)) < 16)		{#ifdef CLEAR_LOG1	LOG << "Clear::TwoKickable model 1" << endl;#endif			bool up;			const Player *player = worldModel->getOppGoalie();			if (player == NULL)			{				if (worldModel->getBall().getPos().getY() > 0)					up = true;				else					up = false;			}			else if (player->getPos().getY() > 0)				up = false;			else				up = true;			if (up)			{				Point gccGhat(52.5, 5.5);				clearCommand = FastKickToPoint(AT_CLEAR, gccGhat,					worldModel->getBall(), worldModel->getBody()).getCommand();			}			else			{				Point gccGhat(52.5, -5.5);				clearCommand = FastKickToPoint(AT_CLEAR, gccGhat,					worldModel->getBall(), worldModel->getBody()).getCommand();			}		}		else		{#ifdef CLEAR_LOG1	LOG << "Clear::TwoKickable model 2" << endl;#endif			bool up;			const Player *player = worldModel->getOppGoalie();			Point clearPoints[20];			int clearPointsNum = 0;			unsigned clearPlayers[20];			float clearWeights[20];			float teammateDistance;			float distanceWeight, offenseWeight;			float oppBallRate;			float oppBallRateMin;			float maxWeight;			int maxPointNum;			oppBallRateMin = 100;						for (i = 0; i < FULL_PLAYERS_NUM; i++)				if (worldModel->getFullPlayer(TID_OPPONENT, i).isValid())				{					oppBallRate = (worldModel->getFullPlayer(TID_OPPONENT, i).						getDistance(worldModel->getBall()) - worldModel->						getFullPlayer(TID_OPPONENT, i).getSize() - 						worldModel->getServerParam()["ball_size"].asFloat()) /						worldModel->getFullPlayer(TID_OPPONENT, i).getKickableMargin();					if (oppBallRate <= 1)					{						if (oppBallRate < oppBallRateMin)							oppBallRateMin = oppBallRate;					}				}			for (i = 0; i < HALF_PLAYERS_NUM; i++)				if (worldModel->getHalfPlayer(TID_OPPONENT, i).isValid())				{					oppBallRate = (worldModel->getHalfPlayer(TID_OPPONENT, i).						getDistance(worldModel->getBall()) - worldModel->						getHalfPlayer(TID_OPPONENT, i).getSize() - 						worldModel->getServerParam()["ball_size"].asFloat()) /						worldModel->getHalfPlayer(TID_OPPONENT, i).getKickableMargin();					if (oppBallRate <= 1)					{						if (oppBallRate < oppBallRateMin)							oppBallRateMin = oppBallRate;					}				}						if (oppBallRateMin > 10)				oppBallRateMin = 0.1;			else				oppBallRateMin = 1 - oppBallRateMin;#ifdef CLEAR_LOG1	LOG << "Clear:oppBallRateMin(multiplier)= " << oppBallRateMin << endl;#endif								for (i = 0; i < FULL_PLAYERS_NUM; i++)				if (worldModel->getFullPlayer(TID_TEAMMATE, i).isValid())				{					if (i + 1 == GOALIE_UNIFORM_NUM)						continue;					clearPoints[clearPointsNum] = worldModel->getFullPlayer(TID_TEAMMATE, i).						getPos();					clearPoints[clearPointsNum].x += CLEAR_TO_PLAYER_DELTA_X * oppBallRateMin;					clearPlayers[clearPointsNum] = i + 1;					teammateDistance = worldModel->getFullPlayer(TID_TEAMMATE, i).						getBodyVec().getMagnitude();					if (teammateDistance < 2)						distanceWeight = 10;					else if (teammateDistance >= 2 && teammateDistance < 20)						distanceWeight = Basics::reRate(teammateDistance,								2, 20, 10, 100);					else						distanceWeight = 9;					offenseWeight = Basics::reRate(worldModel->getFullPlayer(TID_TEAMMATE, i).						getPos().getX() - worldModel->getBody().getPos().getX(), -10, 18,						0, 100);					clearWeights[clearPointsNum] = distanceWeight * 0.5 + offenseWeight * 1.1;#ifdef CLEAR_LOG1	LOG << "Clear:addPlayer " << i + 1 << " weight=" <<		clearWeights[clearPointsNum] << " dw,ow=" << distanceWeight << " " <<		offenseWeight << endl;#endif					if (!FastKickToPoint(AT_CLEAR, clearPoints[clearPointsNum],						worldModel->getBall(), worldModel->getBody()).isPossible())					{#ifdef CLEAR_LOG1	LOG << "Clear:not possible " << endl; #endif						clearWeights[clearPointsNum] = AD_MIN_VALUE;					}					clearPointsNum++;				}			// Clear to opponent goal			if (worldModel->getBall().getDistance(Point(52.5, 0)) < 16)			{				if (player == NULL)				{					if (worldModel->getBall().getPos().getY() > 0)						up = true;					else						up = false;				}				else if (player->getPos().getY() > 0)					up = false;				else					up = true;				if (up)				{					clearPoints[clearPointsNum] = Point(52.5, 10);				}				else				{					clearPoints[clearPointsNum] = Point(52.5, -10);				}				clearPlayers[clearPointsNum] = 0;				clearWeights[clearPointsNum] = 90 + (worldModel->getBody().getPos().getX() - 20);#ifdef CLEAR_LOG1	LOG << "Clear:addGoal " << (up ? "up" : "down") << " weight=" <<#endif				clearWeights[clearPointsNum] << endl;				if (!FastKickToPoint(AT_CLEAR, clearPoints[clearPointsNum],					worldModel->getBall(), worldModel->getBody()).isPossible())				{#ifdef CLEAR_LOG1	LOG << "Clear:not possible " << endl; #endif					clearWeights[clearPointsNum] = AD_MIN_VALUE;				}				clearPointsNum++;			}						clearPoints[clearPointsNum] = Point(52.5, worldModel->getBody().getPos().getX());			clearPlayers[clearPointsNum] = 0;			clearWeights[clearPointsNum] = 1;#ifdef CLEAR_LOG1	LOG << "Clear:addDummy " << " weight=" << clearWeights[clearPointsNum] << endl;#endif			if (!FastKickToPoint(AT_CLEAR, clearPoints[clearPointsNum],				worldModel->getBall(), worldModel->getBody()).isPossible())			{#ifdef CLEAR_LOG1	LOG << "Clear:not possible " << endl; #endif				clearWeights[clearPointsNum] = AD_MIN_VALUE;			}			clearPointsNum++;					maxPointNum = 0;			maxWeight = -0xFFFF * 10;			for (i = 0; i < clearPointsNum; i++)				if (clearWeights[i] > maxWeight)				{					maxWeight = clearWeights[i];					maxPointNum = i;				}#ifdef CLEAR_LOG1	LOG << "Clear::selected =" << maxPointNum << " " << clearPoints[maxPointNum] << endl;	LOG << "Clear::selected player=" << clearPlayers[maxPointNum] << endl;#endif			if (maxWeight <= AD_MIN_VALUE)			{#ifdef CLEAR_LOG1	LOG << "Clear::all not possible =" << endl;#endif				if (worldModel->getBody().getPos().getY() >= 0)					clearCommand = new KickCommand(AT_CLEAR, 100, 50);				else					clearCommand = new KickCommand(AT_CLEAR, 100, -50);			}			else			{					clearCommand = FastKickToPoint(AT_CLEAR, clearPoints[maxPointNum],					worldModel->getBall(), worldModel->getBody()).getCommand();				twoKickableInterceptNum = clearPlayers[maxPointNum];			}		}		return AD_ALWAYS_RUN_VALUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡的av网站| 美女一区二区三区| 亚洲人成网站精品片在线观看| 日韩精品自拍偷拍| 亚洲激情av在线| 国产在线视频一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩精品一区二区三区四区 | 91香蕉视频mp4| 精品少妇一区二区三区在线播放| 中文在线一区二区| 玉米视频成人免费看| 美国毛片一区二区| 一本大道久久a久久综合婷婷| 久久综合色天天久久综合图片| 中文字幕色av一区二区三区| 亚洲欧美日韩在线播放| 粉嫩一区二区三区性色av| 欧美日免费三级在线| 亚洲精品成人a在线观看| 国产成人综合自拍| 欧美丰满美乳xxx高潮www| 亚洲精品国产品国语在线app| 久久99国产精品麻豆| 欧美老肥妇做.爰bbww视频| 一区二区三区中文在线| 国产精品亚洲午夜一区二区三区 | 欧美激情一区二区三区不卡| 亚洲成av人片在线| 一本大道久久a久久综合| 国产三级精品三级在线专区| 国产麻豆成人精品| 欧美成人国产一区二区| 美女被吸乳得到大胸91| 欧美日韩精品一区二区三区| 一区二区三区日韩欧美精品| 色综合激情五月| 中文字幕中文字幕在线一区 | 欧美一区二区三区免费在线看| 久久久久久影视| 狠狠久久亚洲欧美| 欧美一区二区视频免费观看| 天堂久久久久va久久久久| 97久久精品人人做人人爽50路| 国产欧美日韩一区二区三区在线观看| 国产乱子伦视频一区二区三区 | 午夜国产不卡在线观看视频| 91麻豆.com| 亚洲r级在线视频| 欧美视频你懂的| 亚洲欧洲性图库| 欧美三级日韩三级国产三级| 亚洲欧洲国产日本综合| 欧美性生交片4| 午夜久久久久久| 欧美吻胸吃奶大尺度电影| 日韩国产欧美在线观看| 91精品国产综合久久精品图片| 亚洲精品中文字幕在线观看| 欧美裸体bbwbbwbbw| 蜜桃视频在线观看一区二区| 国产日韩欧美精品一区| 成人做爰69片免费看网站| 国产精品午夜春色av| 97久久超碰国产精品| 亚洲自拍偷拍av| 欧美亚洲综合色| 男人操女人的视频在线观看欧美| 欧美电影免费观看高清完整版在| 99久久精品免费看| 亚洲高清视频在线| 欧美系列一区二区| 国产在线播放一区| 国产精品免费视频一区| 51精品久久久久久久蜜臀| 美女视频一区在线观看| 日韩欧美精品三级| 粉嫩av一区二区三区在线播放| 亚洲女人的天堂| 精品国产亚洲一区二区三区在线观看| 国产精品一区二区无线| 亚洲精品乱码久久久久久久久 | 欧美大度的电影原声| 免费观看在线综合色| 精品电影一区二区| 国产精品美日韩| eeuss鲁片一区二区三区在线看| 欧美视频一区在线观看| 日韩欧美国产午夜精品| 午夜精品在线视频一区| 亚洲美女视频在线观看| 青青草97国产精品免费观看| 丁香一区二区三区| 色综合激情五月| 欧美精品电影在线播放| 一本久久精品一区二区| 国产精品正在播放| 国产精品免费观看视频| 天天爽夜夜爽夜夜爽精品视频| 精品国产91亚洲一区二区三区婷婷| 欧美影片第一页| 成人av资源下载| 中文字幕一区二区三中文字幕| 日韩综合小视频| 欧美久久久影院| 福利一区福利二区| 久久久久亚洲蜜桃| 欧美在线播放高清精品| 日韩高清国产一区在线| 色综合久久中文字幕综合网| 国产精品蜜臀在线观看| 97精品国产97久久久久久久久久久久 | 国产精品一级片| 日本欧洲一区二区| 国产精品一区二区在线播放| 视频在线观看91| 亚洲精品久久嫩草网站秘色| 在线亚洲一区二区| 久久精品一区二区三区四区| 色88888久久久久久影院按摩| 亚洲va韩国va欧美va精品| 久久久久久夜精品精品免费| 成人三级在线视频| 精品无码三级在线观看视频| 亚洲图片另类小说| 国产性天天综合网| 欧美性受xxxx黑人xyx性爽| 日韩精品电影在线| 欧美日韩美女一区二区| 免费xxxx性欧美18vr| 国产婷婷精品av在线| 欧美日韩国产系列| 美女免费视频一区二区| 亚洲第一搞黄网站| 成人av手机在线观看| 国产欧美日韩三级| 欧美日韩免费一区二区三区| 欧美色图在线观看| 日韩丝袜美女视频| 欧美三电影在线| 欧美日韩一区视频| 欧美日韩黄视频| 91精品免费在线观看| 91久久香蕉国产日韩欧美9色| 国产ts人妖一区二区| 欧美日韩综合在线| 国产日韩欧美精品在线| 日本亚洲三级在线| 日韩福利视频导航| 日韩制服丝袜先锋影音| 成人a级免费电影| 欧美日韩一区二区电影| 精品捆绑美女sm三区| 亚洲国产高清aⅴ视频| 亚洲靠逼com| 亚洲韩国一区二区三区| 精品一区二区三区欧美| 岛国av在线一区| 成人av电影免费观看| 欧美伊人久久久久久久久影院| 在线播放91灌醉迷j高跟美女| 欧美zozo另类异族| 日韩av中文在线观看| 欧美日韩一区小说| 曰韩精品一区二区| 美国毛片一区二区| 欧美日韩一级二级| 视频在线观看一区二区三区| 日本韩国一区二区三区| 中文字幕在线不卡一区 | 国产成人福利片| 亚洲婷婷综合色高清在线| 精品一区二区三区免费播放| 欧美日韩在线电影| 天天影视色香欲综合网老头| 欧美日韩成人一区| 狠狠色综合播放一区二区| 国产精品美女久久久久aⅴ| www.欧美日韩国产在线| 亚洲三级电影网站| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日本在线视频| 麻豆精品视频在线观看免费| 精品久久久久久久一区二区蜜臀| 午夜精品久久久久久久99樱桃| 欧美一区二区三区播放老司机| 久久草av在线| 亚洲一线二线三线久久久| 欧美一区二区三区思思人| 成a人片国产精品| 日韩中文字幕不卡| 亚洲人被黑人高潮完整版| 91精品久久久久久久久99蜜臂| 韩国三级中文字幕hd久久精品| 一区二区三区四区亚洲| 国产精品人人做人人爽人人添| 欧美中文字幕亚洲一区二区va在线 | 久草中文综合在线| 亚洲成人久久影院| 亚洲成人资源在线|