亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产网站一区二区| 激情图片小说一区| 久久精品国产精品亚洲红杏 | 亚洲精品视频在线| 天天影视色香欲综合网老头| 国产一区二区三区免费在线观看| 91视频在线观看| 久久精品视频免费| 日韩电影一区二区三区| 日本高清无吗v一区| 精品999在线播放| 视频一区在线播放| 色播五月激情综合网| 中文字幕欧美区| 国产在线观看免费一区| 日韩一区二区影院| 日韩激情在线观看| 欧美综合欧美视频| 亚洲永久免费av| 91在线免费看| 国产精品国产馆在线真实露脸| 精久久久久久久久久久| 日韩三级视频中文字幕| 天堂成人国产精品一区| 在线观看视频91| 亚洲欧美激情一区二区| av在线免费不卡| 国产亚洲综合性久久久影院| 久久se精品一区精品二区| 欧美一级日韩不卡播放免费| 天天亚洲美女在线视频| 777奇米四色成人影色区| 午夜在线电影亚洲一区| 欧美性猛片xxxx免费看久爱| 亚洲精品中文字幕在线观看| 一本大道久久精品懂色aⅴ| 亚洲婷婷综合色高清在线| 99re这里只有精品首页| 亚洲伦理在线免费看| 色综合天天狠狠| 亚洲综合激情网| 欧美日韩高清一区二区| 日韩激情一二三区| 日韩一级大片在线观看| 裸体歌舞表演一区二区| 日韩欧美www| 懂色av一区二区夜夜嗨| 亚洲六月丁香色婷婷综合久久| 色吧成人激情小说| 天天影视色香欲综合网老头| 日韩一区国产二区欧美三区| 久久91精品久久久久久秒播| 国产欧美一区二区精品忘忧草| 99久久精品费精品国产一区二区| 一区二区三区在线观看视频| 欧美日韩成人综合天天影院| 奇米综合一区二区三区精品视频| 一区二区国产视频| 欧美区在线观看| 麻豆精品在线播放| 国产精品午夜在线| 欧美视频在线一区二区三区| 美女任你摸久久| 中文字幕中文字幕中文字幕亚洲无线| 99国产欧美久久久精品| 首页国产丝袜综合| 国产欧美视频在线观看| 欧美日韩亚洲综合| 国产精品亚洲一区二区三区妖精 | 精品久久久久久久一区二区蜜臀| 国产精品资源网站| 亚洲成a人片综合在线| www久久久久| 欧美视频在线一区| 处破女av一区二区| 日韩激情一二三区| 综合婷婷亚洲小说| 精品处破学生在线二十三| 91在线国产观看| 国产原创一区二区三区| 亚洲午夜一区二区三区| 久久色.com| 欧美日韩精品一区二区三区| 成人深夜福利app| 日韩成人dvd| 一区二区三区欧美| 国产欧美久久久精品影院| 欧美精品成人一区二区三区四区| 波多野结衣精品在线| 精品无码三级在线观看视频| 亚洲国产一区在线观看| 日韩美女啊v在线免费观看| 精品国产一区二区三区久久久蜜月 | 亚洲高清视频在线| 国产精品久久久久久一区二区三区| 91精品国模一区二区三区| 一本一道波多野结衣一区二区| 国产又黄又大久久| 亚洲综合在线五月| 中文字幕日韩精品一区| 久久免费视频一区| 精品女同一区二区| 日韩一区国产二区欧美三区| 欧美色视频在线| 日本精品一级二级| 91免费观看视频| 99精品久久只有精品| 国产精品一区二区免费不卡| 久草中文综合在线| 久久机这里只有精品| 午夜国产精品影院在线观看| 一区二区三区小说| 亚洲精品中文在线影院| 亚洲日本在线观看| 亚洲精品免费视频| 亚洲欧美另类图片小说| 亚洲欧美偷拍三级| 亚洲麻豆国产自偷在线| 亚洲免费观看高清完整| 亚洲老司机在线| 亚洲精品中文字幕乱码三区| 一区二区三区免费| 五月激情综合网| 日韩成人av影视| 久久国产三级精品| 欧美亚洲日本国产| 欧美精品久久天天躁| 欧美一区二区视频观看视频| 欧美xfplay| 精品国产91乱码一区二区三区| 久久综合视频网| 欧美高清一级片在线观看| 国产精品久久一卡二卡| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲一区二区三区不卡国产欧美| 亚洲国产日韩av| 久久99国产精品麻豆| 成人综合激情网| 欧美综合久久久| 欧美成人a视频| 国产精品不卡一区二区三区| 亚洲自拍偷拍欧美| 老司机午夜精品| 成人动漫视频在线| 欧美日韩精品一区二区三区| 精品国产电影一区二区| 亚洲色图19p| 老司机免费视频一区二区| 夫妻av一区二区| 欧美亚洲综合另类| 久久久五月婷婷| 亚洲激情六月丁香| 国内欧美视频一区二区| 色婷婷国产精品综合在线观看| 欧美一区二区人人喊爽| 国产精品久久久久久亚洲毛片| 亚洲狠狠爱一区二区三区| 国产精品一二三四五| 日本黄色一区二区| 精品国产伦一区二区三区观看方式 | 99精品黄色片免费大全| 这里只有精品99re| 亚洲欧美影音先锋| 国产在线国偷精品免费看| 色成人在线视频| 国产精品女同一区二区三区| 婷婷六月综合亚洲| 色综合色狠狠天天综合色| 26uuu国产一区二区三区| 亚洲国产视频网站| 成人黄色免费短视频| 日韩一区国产二区欧美三区| 亚洲日本在线看| 高清成人免费视频| 69精品人人人人| 亚洲欧美激情在线| 成人黄动漫网站免费app| 欧美大肚乱孕交hd孕妇| 一区二区三区欧美日韩| 从欧美一区二区三区| 久久综合一区二区| 日本美女视频一区二区| 欧美色综合网站| 亚洲欧美偷拍另类a∨色屁股| 国产一区福利在线| 欧美一级黄色片| 视频一区免费在线观看| 国产亚洲视频系列| 免费成人在线视频观看| 欧美性生活大片视频| 亚洲欧美日韩国产另类专区| av高清久久久| 国产精品麻豆网站| 成人黄色软件下载| 中文字幕一区二区三区av| 粉嫩嫩av羞羞动漫久久久| 国产亚洲精品超碰| 国产不卡在线一区| 国产精品久久久久一区二区三区 | 老司机精品视频在线|