怎么样实现各种复杂规则的计算,如越位

谢邀,跑位啥的AI可能是难点,另外就是3D引擎的效率。越位判断一点没有难度,我的回答估计让lz失望了。
■网友
根据规则原文来嘛!(规则原文上FIFA网站看,Laws of the Game 2013-2014)首先,需要实时记录每位队员“距离对方球门线的垂直距离”然后,在每次本方队员出球时,依次进行以下判断:1. 这次出球是不是球门球、角球、或界外球?如果是,跳出;2. 找出对方球员中,“距离对方球门线的垂直距离”的长度,倒数第二长的距离,将该数值记为L;3. 找出所有在对方半场的本方球员;4. 对于在3中得到的球员,检查他们“距离对方球门线的垂直距离”,找出所有该距离小于L的球员;5. 对于在4中得到的球员,如果他们“卷入了比赛”(包括触球、干扰对方队员、以及一切获得利益的行为),即为越位。
■网友
越位规则还是挺难用数学方法直接诠释的吧。。。不百度了 只说自己知道但不一定准确的 (1)本方半场内传球没有越位(在对方压上时候 即使本方前锋已是最前面的人也不越位) (2)防守球员的传球、回传(比如今年利物浦对斯旺西斯图的进球)或传球被防守球员碰到后(不确定,但之前在意甲看到过,很久以前的比赛了,获益的是当时效力桑普的曼奇尼),越位位置攻方不算越位(3)越位位置回跑,与球平行后再返身参与进攻,不越位(4)有攻方球员处于越位位置,但未参与进攻,后插上的不越位总之越位还是挺难简单界定的 所以才总会有类似的争议判罚
■网友
不是程序猿,但这个我觉得不难吧?无非就是IF(当己方球员传球时,被传球者所在位置比对方所有球员离对方球门更近) 己方越位;else 不越位;具体参数就不列了。。。。以免出丑,还是匿了。。。。


    推荐阅读