⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pass.cpp

📁 mersad源码 03年robocup 季军 可以研究一下大家
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	offenseFactors.dashDist.minWeight = config["Pass"]["DashDistance"]["MinWeight"][1].asFloat();	offenseFactors.dashDist.maxWeight = config["Pass"]["DashDistance"]["MaxWeight"][1].asFloat();	offenseFactors.breakOffside.minValue = config["Pass"]["BreakOffsideLine"]["MinValue"][1].asFloat();	offenseFactors.breakOffside.maxValue = config["Pass"]["BreakOffsideLine"]["MaxValue"][1].asFloat();	offenseFactors.breakOffside.minWeight = config["Pass"]["BreakOffsideLine"]["MinWeight"][1].asFloat();	offenseFactors.breakOffside.maxWeight = config["Pass"]["BreakOffsideLine"]["MaxWeight"][1].asFloat();	offenseFactors.passedOppNum.minValue = config["Pass"]["PassedOppNum"]["MinValue"][1].asFloat();	offenseFactors.passedOppNum.maxValue = config["Pass"]["PassedOppNum"]["MaxValue"][1].asFloat();	offenseFactors.passedOppNum.minWeight = config["Pass"]["PassedOppNum"]["MinWeight"][1].asFloat();	offenseFactors.passedOppNum.maxWeight = config["Pass"]["PassedOppNum"]["MaxWeight"][1].asFloat();	offenseFactors.statusOppNum.minValue = config["Pass"]["StatusOppNum"]["MinValue"][1].asFloat();	offenseFactors.statusOppNum.maxValue = config["Pass"]["StatusOppNum"]["MaxValue"][1].asFloat();	offenseFactors.statusOppNum.minWeight = config["Pass"]["StatusOppNum"]["MinWeight"][1].asFloat();	offenseFactors.statusOppNum.maxWeight = config["Pass"]["StatusOppNum"]["MaxWeight"][1].asFloat();	offenseFactors.securityDeltaCycle.minValue = config["Pass"]["SecurityDeltaCycle"]["MinValue"][1].asFloat();	offenseFactors.securityDeltaCycle.maxValue = config["Pass"]["SecurityDeltaCycle"]["MaxValue"][1].asFloat();	offenseFactors.securityDeltaCycle.minWeight = config["Pass"]["SecurityDeltaCycle"]["MinWeight"][1].asFloat();	offenseFactors.securityDeltaCycle.maxWeight = config["Pass"]["SecurityDeltaCycle"]["MaxWeight"][1].asFloat();	offenseFactors.statusOppDist.minValue = config["Pass"]["StatusOppDistance"]["MinValue"][1].asFloat();	offenseFactors.statusOppDist.maxValue = config["Pass"]["StatusOppDistance"]["MaxValue"][1].asFloat();	offenseFactors.statusOppDist.minWeight = config["Pass"]["StatusOppDistance"]["MinWeight"][1].asFloat();	offenseFactors.statusOppDist.maxWeight = config["Pass"]["StatusOppDistance"]["MaxWeight"][1].asFloat();	offenseFactors.statusOppDir.minValue = config["Pass"]["StatusOppDirection"]["MinValue"][1].asFloat();	offenseFactors.statusOppDir.maxValue = config["Pass"]["StatusOppDirection"]["MaxValue"][1].asFloat();	offenseFactors.statusOppDir.minWeight = config["Pass"]["StatusOppDirection"]["MinWeight"][1].asFloat();	offenseFactors.statusOppDir.maxWeight = config["Pass"]["StatusOppDirection"]["MaxWeight"][1].asFloat();	offenseFactors.statusShoot.minValue = config["Pass"]["StatusShoot"]["MinValue"][1].asFloat();	offenseFactors.statusShoot.maxValue = config["Pass"]["StatusShoot"]["MaxValue"][1].asFloat();	offenseFactors.statusShoot.minWeight = config["Pass"]["StatusShoot"]["MinWeight"][1].asFloat();	offenseFactors.statusShoot.maxWeight = config["Pass"]["StatusShoot"]["MaxWeight"][1].asFloat();	offenseFactors.dribblePath.minValue = config["Pass"]["DribblePath"]["MinValue"][1].asFloat();	offenseFactors.dribblePath.maxValue = config["Pass"]["DribblePath"]["MaxValue"][1].asFloat();	offenseFactors.dribblePath.minWeight = config["Pass"]["DribblePath"]["MinWeight"][1].asFloat();	offenseFactors.dribblePath.maxWeight = config["Pass"]["DribblePath"]["MaxWeight"][1].asFloat();	offenseFactors.defenseLine.minValue = config["Pass"]["DefenseLine"]["MinValue"][1].asFloat();	offenseFactors.defenseLine.maxValue = config["Pass"]["DefenseLine"]["MaxValue"][1].asFloat();	offenseFactors.defenseLine.minWeight = config["Pass"]["DefenseLine"]["MinWeight"][1].asFloat();	offenseFactors.defenseLine.maxWeight = config["Pass"]["DefenseLine"]["MaxWeight"][1].asFloat();	offenseFactors.extraCatch.minValue = config["Pass"]["ExtraCatch"]["MinValue"][1].asFloat();	offenseFactors.extraCatch.maxValue = config["Pass"]["ExtraCatch"]["MaxValue"][1].asFloat();	offenseFactors.extraCatch.minWeight = config["Pass"]["ExtraCatch"]["MinWeight"][1].asFloat();	offenseFactors.extraCatch.maxWeight = config["Pass"]["ExtraCatch"]["MaxWeight"][1].asFloat();	// secureBallFactors	secureBallFactors.posDev.minValue = config["Pass"]["PosDeviation"]["MinValue"][2].asFloat();	secureBallFactors.posDev.maxValue = config["Pass"]["PosDeviation"]["MaxValue"][2].asFloat();	secureBallFactors.posDev.minWeight = config["Pass"]["PosDeviation"]["MinWeight"][2].asFloat();	secureBallFactors.posDev.maxWeight = config["Pass"]["PosDeviation"]["MaxWeight"][2].asFloat();	secureBallFactors.offense.minValue = config["Pass"]["Offense"]["MinValue"][2].asFloat();	secureBallFactors.offense.maxValue = config["Pass"]["Offense"]["MaxValue"][2].asFloat();	secureBallFactors.offense.minWeight = config["Pass"]["Offense"]["MinWeight"][2].asFloat();	secureBallFactors.offense.maxWeight = config["Pass"]["Offense"]["MaxWeight"][2].asFloat();	secureBallFactors.seeInfo.minValue = config["Pass"]["SeeInformation"]["MinValue"][2].asFloat();	secureBallFactors.seeInfo.maxValue = config["Pass"]["SeeInformation"]["MaxValue"][2].asFloat();	secureBallFactors.seeInfo.minWeight = config["Pass"]["SeeInformation"]["MinWeight"][2].asFloat();	secureBallFactors.seeInfo.maxWeight = config["Pass"]["SeeInformation"]["MaxWeight"][2].asFloat();	secureBallFactors.ballDist.minValue = config["Pass"]["BallDistance"]["MinValue"][2].asFloat();	secureBallFactors.ballDist.maxValue = config["Pass"]["BallDistance"]["MaxValue"][2].asFloat();	secureBallFactors.ballDist.minWeight = config["Pass"]["BallDistance"]["MinWeight"][2].asFloat();	secureBallFactors.ballDist.maxWeight = config["Pass"]["BallDistance"]["MaxWeight"][2].asFloat();	secureBallFactors.dashDist.minValue = config["Pass"]["DashDistance"]["MinValue"][2].asFloat();	secureBallFactors.dashDist.maxValue = config["Pass"]["DashDistance"]["MaxValue"][2].asFloat();	secureBallFactors.dashDist.minWeight = config["Pass"]["DashDistance"]["MinWeight"][2].asFloat();	secureBallFactors.dashDist.maxWeight = config["Pass"]["DashDistance"]["MaxWeight"][2].asFloat();	secureBallFactors.breakOffside.minValue = config["Pass"]["BreakOffsideLine"]["MinValue"][2].asFloat();	secureBallFactors.breakOffside.maxValue = config["Pass"]["BreakOffsideLine"]["MaxValue"][2].asFloat();	secureBallFactors.breakOffside.minWeight = config["Pass"]["BreakOffsideLine"]["MinWeight"][2].asFloat();	secureBallFactors.breakOffside.maxWeight = config["Pass"]["BreakOffsideLine"]["MaxWeight"][2].asFloat();	secureBallFactors.passedOppNum.minValue = config["Pass"]["PassedOppNum"]["MinValue"][2].asFloat();	secureBallFactors.passedOppNum.maxValue = config["Pass"]["PassedOppNum"]["MaxValue"][2].asFloat();	secureBallFactors.passedOppNum.minWeight = config["Pass"]["PassedOppNum"]["MinWeight"][2].asFloat();	secureBallFactors.passedOppNum.maxWeight = config["Pass"]["PassedOppNum"]["MaxWeight"][2].asFloat();	secureBallFactors.statusOppNum.minValue = config["Pass"]["StatusOppNum"]["MinValue"][2].asFloat();	secureBallFactors.statusOppNum.maxValue = config["Pass"]["StatusOppNum"]["MaxValue"][2].asFloat();	secureBallFactors.statusOppNum.minWeight = config["Pass"]["StatusOppNum"]["MinWeight"][2].asFloat();	secureBallFactors.statusOppNum.maxWeight = config["Pass"]["StatusOppNum"]["MaxWeight"][2].asFloat();	secureBallFactors.securityDeltaCycle.minValue = config["Pass"]["SecurityDeltaCycle"]["MinValue"][2].asFloat();	secureBallFactors.securityDeltaCycle.maxValue = config["Pass"]["SecurityDeltaCycle"]["MaxValue"][2].asFloat();	secureBallFactors.securityDeltaCycle.minWeight = config["Pass"]["SecurityDeltaCycle"]["MinWeight"][2].asFloat();	secureBallFactors.securityDeltaCycle.maxWeight = config["Pass"]["SecurityDeltaCycle"]["MaxWeight"][2].asFloat();	secureBallFactors.statusOppDist.minValue = config["Pass"]["StatusOppDistance"]["MinValue"][2].asFloat();	secureBallFactors.statusOppDist.maxValue = config["Pass"]["StatusOppDistance"]["MaxValue"][2].asFloat();	secureBallFactors.statusOppDist.minWeight = config["Pass"]["StatusOppDistance"]["MinWeight"][2].asFloat();	secureBallFactors.statusOppDist.maxWeight = config["Pass"]["StatusOppDistance"]["MaxWeight"][2].asFloat();	secureBallFactors.statusOppDir.minValue = config["Pass"]["StatusOppDirection"]["MinValue"][2].asFloat();	secureBallFactors.statusOppDir.maxValue = config["Pass"]["StatusOppDirection"]["MaxValue"][2].asFloat();	secureBallFactors.statusOppDir.minWeight = config["Pass"]["StatusOppDirection"]["MinWeight"][2].asFloat();	secureBallFactors.statusOppDir.maxWeight = config["Pass"]["StatusOppDirection"]["MaxWeight"][2].asFloat();	secureBallFactors.statusShoot.minValue = config["Pass"]["StatusShoot"]["MinValue"][2].asFloat();	secureBallFactors.statusShoot.maxValue = config["Pass"]["StatusShoot"]["MaxValue"][2].asFloat();	secureBallFactors.statusShoot.minWeight = config["Pass"]["StatusShoot"]["MinWeight"][2].asFloat();	secureBallFactors.statusShoot.maxWeight = config["Pass"]["StatusShoot"]["MaxWeight"][2].asFloat();	secureBallFactors.dribblePath.minValue = config["Pass"]["DribblePath"]["MinValue"][2].asFloat();	secureBallFactors.dribblePath.maxValue = config["Pass"]["DribblePath"]["MaxValue"][2].asFloat();	secureBallFactors.dribblePath.minWeight = config["Pass"]["DribblePath"]["MinWeight"][2].asFloat();	secureBallFactors.dribblePath.maxWeight = config["Pass"]["DribblePath"]["MaxWeight"][2].asFloat();	secureBallFactors.defenseLine.minValue = config["Pass"]["DefenseLine"]["MinValue"][2].asFloat();	secureBallFactors.defenseLine.maxValue = config["Pass"]["DefenseLine"]["MaxValue"][2].asFloat();	secureBallFactors.defenseLine.minWeight = config["Pass"]["DefenseLine"]["MinWeight"][2].asFloat();	secureBallFactors.defenseLine.maxWeight = config["Pass"]["DefenseLine"]["MaxWeight"][2].asFloat();	secureBallFactors.extraCatch.minValue = config["Pass"]["ExtraCatch"]["MinValue"][2].asFloat();	secureBallFactors.extraCatch.maxValue = config["Pass"]["ExtraCatch"]["MaxValue"][2].asFloat();	secureBallFactors.extraCatch.minWeight = config["Pass"]["ExtraCatch"]["MinWeight"][2].asFloat();	secureBallFactors.extraCatch.maxWeight = config["Pass"]["ExtraCatch"]["MaxWeight"][2].asFloat();	// breakOffsideFactors	breakOffsideFactors.posDev.minValue = config["Pass"]["PosDeviation"]["MinValue"][3].asFloat();	breakOffsideFactors.posDev.maxValue = config["Pass"]["PosDeviation"]["MaxValue"][3].asFloat();	breakOffsideFactors.posDev.minWeight = config["Pass"]["PosDeviation"]["MinWeight"][3].asFloat();	breakOffsideFactors.posDev.maxWeight = config["Pass"]["PosDeviation"]["MaxWeight"][3].asFloat();	breakOffsideFactors.offense.minValue = config["Pass"]["Offense"]["MinValue"][3].asFloat();	breakOffsideFactors.offense.maxValue = config["Pass"]["Offense"]["MaxValue"][3].asFloat();	breakOffsideFactors.offense.minWeight = config["Pass"]["Offense"]["MinWeight"][3].asFloat();	breakOffsideFactors.offense.maxWeight = config["Pass"]["Offense"]["MaxWeight"][3].asFloat();	breakOffsideFactors.seeInfo.minValue = config["Pass"]["SeeInformation"]["MinValue"][3].asFloat();	breakOffsideFactors.seeInfo.maxValue = config["Pass"]["SeeInformation"]["MaxValue"][3].asFloat();	breakOffsideFactors.seeInfo.minWeight = config["Pass"]["SeeInformation"]["MinWeight"][3].asFloat();	breakOffsideFactors.seeInfo.maxWeight = config["Pass"]["SeeInformation"]["MaxWeight"][3].asFloat();	breakOffsideFactors.ballDist.minValue = config["Pass"]["BallDistance"]["MinValue"][3].asFloat();	breakOffsideFactors.ballDist.maxValue = config["Pass"]["BallDistance"]["MaxValue"][3].asFloat();	breakOffsideFactors.ballDist.minWeight = config["Pass"]["BallDistance"]["MinWeight"][3].asFloat();	breakOffsideFactors.ballDist.maxWeight = config["Pass"]["BallDistance"]["MaxWeight"][3].asFloat();	breakOffsideFactors.dashDist.minValue = config["Pass"]["DashDistance"]["MinValue"][3].asFloat();	breakOffsideFactors.dashDist.maxValue = config["Pass"]["DashDistance"]["MaxValue"][3].asFloat();	breakOffsideFactors.dashDist.minWeight = config["Pass"]["DashDistance"]["MinWeight"][3].asFloat();	breakOffsideFactors.dashDist.maxWeight = config["Pass"]["DashDistance"]["MaxWeight"][3].asFloat();	breakOffsideFactors.breakOffside.minValue = config["Pass"]["BreakOffsideLine"]["MinValue"][3].asFloat();	breakOffsideFactors.breakOffside.maxValue = config["Pass"]["BreakOffsideLine"]["MaxValue"][3].asFloat();	breakOffsideFactors.breakOffside.minWeight = config["Pass"]["BreakOffsideLine"]["MinWeight"][3].asFloat();	breakOffsideFactors.breakOffside.maxWeight = config["Pass"]["BreakOffsideLine"]["MaxWeight"][3].asFloat();	breakOffsideFactors.passedOppNum.minValue = config["Pass"]["PassedOppNum"]["MinValue"][3].asFloat();	breakOffsideFactors.passedOppNum.maxValue = config["Pass"]["PassedOppNum"]["MaxValue"][3].asFloat();	breakOffsideFactors.passedOppNum.minWeight = config["Pass"]["PassedOppNum"]["MinWeight"][3].asFloat();	breakOffsideFactors.passedOppNum.maxWeight = config["Pass"]["PassedOppNum"]["MaxWeight"][3].asFloat();	breakOffsideFactors.statusOppNum.minValue = config["Pass"]["StatusOppNum"]["MinValue"][3].asFloat();	breakOffsideFactors.statusOppNum.maxValue = config["Pass"]["StatusOppNum"]["MaxValue"][3].asFloat();	breakOffsideFactors.statusOppNum.minWeight = config["Pass"]["StatusOppNum"]["MinWeight"][3].asFloat();	breakOffsideFactors.statusOppNum.maxWeight = config["Pass"]["StatusOppNum"]["MaxWeight"][3].asFloat();	breakOffsideFactors.securityDeltaCycle.minValue = config["Pass"]["SecurityDeltaCycle"]["MinValue"][3].asFloat();	breakOffsideFactors.securityDeltaCycle.maxValue = config["Pass"]["SecurityDeltaCycle"]["MaxValue"][3].asFloat();	breakOffsideFactors.securityDeltaCycle.minWeight = config["Pass"]["SecurityDeltaCycle"]["MinWeight"][3].asFloat();	breakOffsideFactors.securityDeltaCycle.maxWeight = config["Pass"]["SecurityDeltaCycle"]["MaxWeight"][3].asFloat();	breakOffsideFactors.statusOppDist.minValue = config["Pass"]["StatusOppDistance"]["MinValue"][3].asFloat();	breakOffsideFactors.statusOppDist.maxValue = config["Pass"]["StatusOppDistance"]["MaxValue"][3].asFloat();	breakOffsideFactors.statusOppDist.minWeight = config["Pass"]["StatusOppDistance"]["MinWeight"][3].asFloat();	breakOffsideFactors.statusOppDist.maxWeight = config["Pass"]["StatusOppDistance"]["MaxWeight"][3].asFloat();	breakOffsideFactors.statusOppDir.minValue = config["Pass"]["StatusOppDirection"]["MinValue"][3].asFloat();	breakOffsideFactors.statusOppDir.maxValue = config["Pass"]["StatusOppDirection"]["MaxValue"][3].asFloat();	breakOffsideFactors.statusOppDir.minWeight = config["Pass"]["StatusOppDirection"]["MinWeight"][3].asFloat();	breakOffsideFactors.statusOppDir.maxWeight = config["Pass"]["StatusOppDirection"]["MaxWeight"][3].asFloat();	breakOffsideFactors.statusShoot.minValue = config["Pass"]["StatusShoot"]["MinValue"][3].asFloat();	breakOffsideFactors.statusShoot.maxValue = config["Pass"]["StatusShoot"]["MaxValue"][3].asFloat();	breakOffsideFactors.statusShoot.minWeight = config["Pass"]["StatusShoot"]["MinWeight"][3].asFloat();	breakOffsideFactors.statusShoot.maxWeight = config["Pass"]["StatusShoot"]["MaxWeight"][3].asFloat();	breakOffsideFactors.dribblePath.minValue = config["Pass"]["DribblePath"]["MinValue"][3].asFloat();	breakOffsideFactors.dribblePath.maxValue = config["Pass"]["DribblePath"]["MaxValue"][3].asFloat();	breakOffsideFactors.dribblePath.minWeight = config["Pass"]["DribblePath"]["MinWeight"][3].asFloat();	breakOffsideFactors.dribblePath.maxWeight = config["Pass"]["DribblePath"]["MaxWeight"][3].asFloat();	breakOffsideFactors.defenseLine.minValue = config["Pass"]["DefenseLine"]["MinValue"][3].asFloat();	breakOffsideFactors.defenseLine.maxValue = config["Pass"]["DefenseLine"]["MaxValue"][3].asFloat();	breakOffsideFactors.defenseLine.minWeight = config["Pass"]["DefenseLine"]["MinWeight"][3].asFloat();	breakOffsideFactors.defenseLine.maxWeight = config["Pass"]["DefenseLine"]["MaxWeight"][3].asFloat();	breakOffsideFactors.extraCatch.minValue = config["Pass"]["ExtraCatch"]["MinValue"][3].asFloat();	breakOffsideFactors.extraCatch.maxValue = config["Pass"]["ExtraCatch"]["MaxValue"][3].asFloat();	breakOffsideFactors.extraCatch.minWeight = config["Pass"]["ExtraCatch"]["MinWeight"][3].asFloat();	breakOffsideFactors.extraCatch.maxWeight = config["Pass"]["ExtraCatch"]["MaxWeight"][3].asFloat();}void Pass::fillOnePassValuesByFactors(const KickInterceptCalculate &interCalc,		const PassFactors **factors, float *valuesList[], unsigned num){	float offenseWeight[MAX_FACTORS_NUM];	float statusOppNumWeight[MAX_FACTORS_NUM];	float statusOppDistWeight[MAX_FACTORS_NUM];	float statusOppDirWeight[MAX_FACTORS_NUM];	float breakOffsideWeight[MAX_FACTORS_NUM];	float passedOppNumWeight[MAX_FACTORS_NUM];	float statusShootWeight[MAX_FACTORS_NUM];	float dribblePathWeight[MAX_FACTORS_NUM];	float ballDistWeight[MAX_FACTORS_NUM];	float dashDistWeight[MAX_FACTORS_NUM];	float posDevWeight[MAX_FACTORS_NUM];	float seeInfoWeight[MAX_FACTORS_NUM];	float securityDeltaCycleWeight[MAX_FACTORS_NUM];	float defenseLineWeight[MAX_FACTORS_NUM];	float extraCatchWeight[MAX_FACTORS_NUM];	float planWeight[MAX_FACTORS_NUM];	const KickInterceptPlayer &checkInterPlayer =			interCalc.getFastestTmmInterPlayer();	if (logLevel >= 2)		LOG << "New pass Player: " << checkInterPlayer.getPlayer().getUniNum()			<< " - interPoint: " << checkInterPlayer.getInterPoint()			<< " - ballVel: " << Point(interCalc.getFirstBall().getVel().getMagnitude(),				interCalc.getFirstBall().getVel().getDirection())			<< " ----------------" << endl			<< "command: " << interCalc.getKickCommand().toString() << endl;	// calculating quantomic weight	bool quantomicWeight = true;	float maxBallVel = reRate(checkInterPlayer.getInterTime(),			1, 4, 1, 2.7, RRM_DIRECT);	if (interCalc.getFirstBall().getVel().getMagnitude() > maxBallVel)		quantomicWeight = false;	else if (WorldModel::getOutDistance(			checkInterPlayer.getInterPoint()) > 0)		quantomicWeight = false;	else if (interCalc.getFirstBall().getDistance(			checkInterPlayer.getInterPoint()) < MIN_PASS_DIST)		quantomicWeight = false;	else if (checkInterPlayer.getPlayer().getStamina() < 2000)		quantomicWeight = false;	if (logLevel >= 2)		LOG << "quantomicWeight: " << quantomicWeight << endl;	if (!quantomicWeight)	{		if (logLevel >= 1)			LOG << "P" << checkInterPlayer.getPlayer().getUniNum()				<< "\tPoint: " << checkInterPlayer.getInterPoint()				<< "\t\tweights:";		for (unsigned i = 0; i < num; i++)		{			*valuesList[i] = -0xFFFF;			if (logLevel >= 1)				LOG << " " << *valuesList[i];		}		if (logLevel >= 1)			LOG << endl;		return;	}	// calculating offense weight	float offenseValue = checkInterPlayer.getInterPoint().x -				interCalc.getFirstBall().getPos().getX();	if (logLevel >= 2)		LOG << "offenseValue: " << offenseValue << endl			<< "offenseWeight:";	for (unsigned i = 0; i < num; i++)	{		offenseWeight[i] = reRate(offenseValue,				factors[i]->offense.minValue, factors[i]->offense.maxValue,				factors[i]->offense.minWeight, factors[i]->offense.maxWeight,				RRM_DIRECT);		if (logLevel >= 2)			LOG << " " << offenseWeight[i];	}	if (logLevel >= 2)		LOG << endl;	// calculating statusOppNum weight	float statusOppNumValue = interCalc.getOppCheckedPlayersNum();	if (logLevel >= 2)		LOG << "statusOppNumValue: " << statusOppNumValue << endl			<< "statusOppNumWeight:";	for (unsigned i = 0; i < num; i++)	{		statusOppNumWeight[i] = reRate(statusOppNumValue,				factors[i]->statusOppNum.minValue,				factors[i]->statusOppNum.maxValue,				factors[i]->statusOppNum.minWeight,				factors[i]->statusOppNum.maxWeight,				RRM_REVERSE);		if (logLevel >= 2)			LOG << " " << statusOppNumWeight[i];	}	if (logLevel >= 2)		LOG << endl;	// calculating statusOppDist weight and statusOppDir weight	float statusOppDistValue = interCalc.getNearestOppToFastestDist();	float statusOppDirValue = interCalc.getNearestOppToFastestDir();	statusOppDistValue += 2.1;	if (logLevel >= 2)		LOG << "statusOppDistValue: " << statusOppDistValue << endl			<< "statusOppDirValue: " << statusOppDirValue << endl			<< "statusOpp(Dist,Dir)Weight:";	for (unsigned i = 0; i < num; i++)	{		statusOppDistWeight[i] = reRate(statusOppDistValue,				factors[i]->statusOppDist.minValue,				factors[i]->statusOppDist.maxValue,				factors[i]->statusOppDist.minWeight,				factors[i]->statusOppDist.maxWeight,				RRM_DIRECT);		statusOppDirWeight[i] = reRate(statusOppDirValue,				factors[i]->statusOppDir.minValue,				factors[i]->statusOppDir.maxValue,				factors[i]->statusOppDir.minWeight,				factors[i]->statusOppDir.maxWeight,				RRM_DIRECT);		if (logLevel >= 2)			LOG << " " << Point(statusOppDistWeight[i], statusOppDirWeight[i]);	}	if (logLevel >= 2)		LOG << endl;	// calculating breakOffside weight	float breakOffsideValue = checkInterPlayer.getInterPoint().x -			worldModel->getOppOffsideLine();	if (logLevel >= 2)		LOG << "breakOffsideValue: " << breakOffsideValue << endl			<< "breakOffsideWeight:";	for (unsigned i = 0; i < num; i++)	{		breakOffsideWeight[i] = reRate(breakOffsideValue,				factors[i]->breakOffside.minValue,				factors[i]->breakOffside.maxValue,				factors[i]->breakOffside.minWeight,				factors[i]->breakOffside.maxWeight,				RRM_DIRECT);		if (logLevel >= 2)			LOG << " " << breakOffsideWeight[i];	}	if (logLevel >= 2)		LOG << endl;	// calculating passedOppNum weight	float passedOppNumValue = interCalc.getPassedOppPlayers();	if (logLevel >= 2)		LOG << "passedOppNumValue: " << passedOppNumValue << endl			<< "passedOppNumWeight:";	for (unsigned i = 0; i < num; i++)	{		passedOppNumWeight[i] = reRate(passedOppNumValue,				factors[i]->passedOppNum.minValue,				factors[i]->passedOppNum.maxValue,				factors[i]->passedOppNum.minWeight,				factors[i]->passedOppNum.maxWeight,				RRM_DIRECT);		if (logLevel >= 2)			LOG << " " << passedOppNumWeight[i];	}	if (logLevel >= 2)		LOG << endl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -