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

📄 listing2.cpp

📁 很好的windows驱动开发书记,基于WDM的,,可以很好的学习
💻 CPP
字号:
/* Copyright (C) William van der Sterren, 2001. 
 * All rights reserved worldwide.
 *
 * This software is provided "as is" without express or implied
 * warranties. You may freely copy and compile this source into
 * applications you distribute provided that the copyright text
 * below is included in the resulting source code, for example:
 * "Portions Copyright (C) William van der Sterren, 2001"
 */

// Algorithms for picking a next position and evaluating each position.

// SquadMemberAI::PickNextPosition
for( spot=nearbyspots.begin(); position!=nearbyspots.end(); ++spot ) {
	if( IsClaimedByFellowSquadMember(*spot) )
		continue;
	value = GetManeuverValueForNextPosition(*spot);

	if( value > highestvalue ) {
		mostsuitablespot = *spot; 
		highestvalue= value;
	}
}

float SquadMemberAI::GetManeuverValueForNextPosition(spot)
{
  return   m_BunchPenalty       * ProjDistToBuddiesAsSeenFromThreat(spot)
         + m_BlockedPenalty     * BlockedLineOfFireBySqdMembers(spot)
         + m_BlockingPenalty    * BlockingLineOfFireOfSqdMembers(spot)
         + m_NeedForCover       * DistanceToNearestFreeCoverSpot(spot)
         + m_NeedForContact     * NumberOfLinesOfSightToBuddies(spot)
         + m_NeedCohesion       * ProperDistanceToBuddies(spot)
         + m_NeedForIntel       * NumberOfLinesOfSightToThreats(spot)
         + m_NeedToAvoidCorpses * DistanceToDeadBuddies(spot)   
         + m_NeedForClosingIn   * MinimumDistanceToThreats(spot)
         // below are non-reactive
         + m_NeedForStrongSpot  * AverageTacticalValueOfSpot(spot)
         + m_FormationPenalty   * DistanceFromFormationSlot(spot);
}


⌨️ 快捷键说明

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