QUOTE(Карбофос @ Aug 29 2006, 16:48)
Вот что у меня получилось в результате анализа циферок, указанных после удара:
lastball x y - координаты мяча в момент удара
finball x y - координаты точки, в которую летит мяч после удара
plvrat x y - координаты вратаря в момент удара
distance - расстояние от вратаря до отрезка lastball-finball
goalnewdo - если есть такое, то вратарь среагировал на удар (видимо, название функции, которая рассчитывает исход борьбы вратаря с мячом)
x, y - координаты на поле в метрах относительно центра поля (только почему-то поле у нас 120 метров длиной)
distance - расстояние тоже измеряется в метрах
Смена сторон во втором тайме, по-видимому, в самом генераторе не происходит.
Вроде бы проверил, выкладки правильные. Лишь несколько случаев выбиваются из этой схемы.
Динабург-Метц:
- 13 минута: тут явно не 12 метров по логу получается
- 38 минута: и тут тоже не сходится
Витория (С)-Эстудиантес
- 69 минута: по логу не получается 19 метров
На глазок можно прикинуть так: прибавляем (или вычитаем, в зависимости от знака) к первой координате lastball расстояние до ворот. Должны приблизительно получить первую координату finball. Приблизительно потому, что расстояние до ворот рассчитывается как расстояние от точки удара до центра ворот.
Если выводы правильные, то очень сильно настораживает слишком частое появление значения distance=0.3. Скорее всего тут также присутствует округление при выводе (0.3=0.25...0.3499), но все равно подавляющее большинство ударов пролетает на расстоянии 0.3 м от вратаря. Это очень странно, т.к. ширина ворот у нас где-то 9-10 метров.
В гене было много разных отладочных данных, один из блоков просто забыл закомментарить

Переменные описаны не совсем точно.
lastball x y - координата мяча в последний расчётный такт времени
finball x y - условная координата мяча при пересечении линии ворот (мяч летит дальше)
plvrat x y - координаты вратаря в момент контакта с мячом
"0.3" - пугаться не стоит. Это расстояние от точки вратаря до мяча в расчётной точке контакта в момент "прыжка" вратаря. Чтобы не было наложения игрока на мяч искусственно прописывается расхождение координат x,y на значение 0.2. То есть, если вратарь допрыгнул до мяча, то вместо 0 фигурирует 0.3
goalnewdo - это действительно основной блок процедуры, отвечающей за исход "борьбы" вратаря с мячом.
Поле действительно 120 на 90, смена ворот происходит только в Билде.