Version 5, last updated by Shevchenko.Artem at March 16, 2010 06:01 UTC

Генерация случайных действий

Генерация защиты

Генерировать противодействие игрок защиты может следующим образом. Он перебирает всех игроков противника. Для каждого из них он ищет начиная с начала таблицы и вниз, до тех пор, пока не найдет класс, который включает действие данного игрока противника. Затем из возможных противодействий он с умом (т.е. оценивая, насколько он близко к противнику в случае дриблинга или может ли он попасть в зону, где возможен перехват) выбирает из возможных противодействий те, которые он реально может в данном случае применить по отношению к этому игроку, попутно получая нужные параметры, например, в какую зону для валидного совершения данного действия ему нужно переместиться. При этом, кажется, NotAction и Move стоит вынести отдельно, т.к. они не имеют отношения к конкретному игроку. После этого он должен кинуть монетку и решить, какое же из возможных действий он выберет.

Класс действий Альтернативное название класса Возможные действия (атака) Обладание мячом Возможные противодействия (защита) Общие действия защиты
0 Движение без мяча NotAction, Move Нет   NotAction, Move
1 Только движение NotAction, Move Да Pressing, Move&Pressing NotAction, Move
2 Движение с дриблингом Move&Dribbling Да AntiDribbling, Move&AntiDribbling NotAction, Move
3 Отдача паса Pass Да Intercept, Move&Intercept NotAction, Move
4 Прием паса RecievingPass, Move&RecievingPass Да (!!!) Pressing, Move&Pressing NotAction, Move

В случае с пассом действие делится на две фазы. Первая -- отдача паса одним из игроков (противодействие к этой фазе -- перехват), а вторая -- прием мяча другим игроком (противодействие -- отбор). Обладающими мячом считаются в данном случае "одновременно" два игрока -- отдающий пас и принимающий его.

В случае с оценкой позиции, предлагается ее загнать как составную часть действия. Подробнее лучше вживую объяснять.

Генерация атаки