Инструменты пользователя

Инструменты сайта


генератор:размещение_игроков

Размещение игроков

В начале каждого такта генератор занимается «глобальным» размещением игроков в рамках клеток.

В самом начале такте генератор определят перечень клеток, в которые может быть отдан пас. Этот перечень формируется на базе стиля, которым играет команда, владеющая мячом. Перечень клеток, может быть скорректирован, в частности, в районе чужой штрафной добавляются клетки штрафной и клетки перед ней (однако, игрок с мячом не рассматривает такие клетки, как клетки продолжения атаки).

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

Для игроков защиты генератор так же проходит по перечню клеток и проверяет игроков на локализацию. Обычно в клетках, где нет игроков атаки, защитники не проверяются на локализацию. Подробнее о см в статье Размещение игроков защиты

После того, как все игроки были размещены в клетках, генератор проверяет нет ли где перебора защитников. Если в какой-то клетке есть «лишние» защитники, то генератор пробует передвинуть их в ту соседнею клетку, в которой мало защитников.

Если так получилось, что в соседние клетки передвинуть нельзя, например, если там нет игроков атаки, то генератор пытается найти «лишнего» защитника и передвинуть его уже не в соседнею клетку, а в ту точку, которая прописан в его роли как point_def (или «родная» точка).

Для игроков атаки point_def расположена на чужой половине поля и они, либо бегут вперед (например, в начале матча), либо отходят немного назад, после потери мяча в чужой штрафной.

Если point_def находится на своей половине поля, то она корректируется на линию мяча (то есть такой игрок старается не отстать от игрока с мячом)

Стоит отметить, что point_def для LCD и RCD расположен в разных клетках и они будут стараться оказаться в разных зонах поля.

Перемещение игрока в «родную» точку происходит с учетом его скорости, усталости и временем между эпизодами. Данный процесс получил условное наименование «RESERVE 2.0» (эти игроки, как бы остаются в резерве, смещаясь к своим «родным» точкам, но при этом могут взаимодействовать с игроками атаки).

Из одной клетки, может быть задействовано в «RESERVE 2.0» до двух игроков. Обычно, это не более одного игрока. Надо отметить, что далеко не каждый такт находятся «лишние» защитники.

Поиск "лишнего" защитника

  1. Если клетка, не является клеткой свой штрафной (6,2 в системе координат атакующих) и в клетке есть SW, то он выбирается кандидатом в «лишнего» защитника.
  2. Среди всех защитников выбираем того, у кого минимальный вес локализации в клетке.
  3. для найденного защитника проверяем координаты его «родной» клетки, если она совпадает с текущей клеткой, то пробуем найти другого игрока.
  • «лишний» защитник перемещается по направлению к своей «родной» клетке.

(Стоит отметить, что при этом он может и не успеть покинуть текущую клетку, все зависит от запаса времени и скорости) такой защитник в просмотрщике в поле mode получает отметку «RESERVE 2.0»

Затем еще раз проверяем есть ли в клетке «лишние» защитники и если есть то пробуем найти второго «лишнего» защитника. При этом, ранее передвинутый игрок не может быть выбран. такой защитник в просмотрщике в поле mode получает отметку «RESERVE 2.1» Если второй лишний защитник найден, то он тоже перемещается в point_def, скорректированную на линию мяча.

генератор/размещение_игроков.txt · Последние изменения: 2018/11/27 13:07 — Дмитрий Язынин