Здесь показаны различия между двумя версиями данной страницы.
— |
генератор:размещение_игроков [2018/11/27 13:07] (текущий) Дмитрий Язынин создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Размещение игроков ====== | ||
+ | В начале каждого такта генератор занимается "глобальным" размещением игроков в рамках клеток. | ||
+ | |||
+ | В самом начале такте генератор определят перечень клеток, в которые может быть отдан пас. Этот перечень формируется на базе стиля, которым играет команда, владеющая мячом. | ||
+ | Перечень клеток, может быть скорректирован, в частности, в районе чужой штрафной добавляются клетки штрафной и клетки перед ней (однако, игрок с мячом не рассматривает такие клетки, как клетки продолжения атаки). | ||
+ | |||
+ | Сначала размещаются игроки атаки. | ||
+ | Генератор проходит по перечню клеток и проверяет игроков на возможность оказаться в заданной клетке (игроки проходят проверку на локализацию). | ||
+ | результаты проверки локализации, как положительные, так и отрицательные, запоминаются генератором. | ||
+ | Подробнее процесс описан в статье [[генератор:размещение_игроков_атаки|размещении игроков атаки]] | ||
+ | |||
+ | Для игроков защиты генератор так же проходит по перечню клеток и проверяет игроков на локализацию. Обычно в клетках, где нет игроков атаки, защитники не проверяются на локализацию. Подробнее о см в статье [[генератор:размещение_игроков_защиты|Размещение игроков защиты]] | ||
+ | |||
+ | После того, как все игроки были размещены в клетках, генератор проверяет нет ли где перебора защитников. Если в какой-то клетке есть "лишние" защитники, то генератор пробует передвинуть их в ту соседнею клетку, в которой мало защитников. | ||
+ | |||
+ | Если так получилось, что в соседние клетки передвинуть нельзя, например, если там нет игроков атаки, то генератор пытается найти "лишнего" защитника и передвинуть его уже не в соседнею клетку, а в ту точку, которая прописан в его роли как **point_def** (или "родная" точка). | ||
+ | |||
+ | Для игроков атаки point_def расположена на чужой половине поля и они, либо бегут вперед (например, в начале матча), либо отходят немного назад, после потери мяча в чужой штрафной. | ||
+ | |||
+ | Если point_def находится на своей половине поля, то она корректируется на линию мяча (то есть такой игрок старается не отстать от игрока с мячом) | ||
+ | |||
+ | Стоит отметить, что point_def для LCD и RCD расположен в разных клетках и они будут стараться оказаться в разных зонах поля. | ||
+ | |||
+ | Перемещение игрока в "родную" точку происходит с учетом его скорости, усталости и временем между эпизодами. Данный процесс получил условное наименование "RESERVE 2.0" (эти игроки, как бы остаются в резерве, смещаясь к своим "родным" точкам, но при этом могут взаимодействовать с игроками атаки). | ||
+ | |||
+ | Из одной клетки, может быть задействовано в "RESERVE 2.0" до двух игроков. Обычно, это не более одного игрока. Надо отметить, что далеко не каждый такт находятся "лишние" защитники. | ||
+ | |||
+ | ===== Поиск "лишнего" защитника ===== | ||
+ | - Если клетка, не является клеткой свой штрафной (6,2 в системе координат атакующих) и в клетке есть SW, то он выбирается кандидатом в "лишнего" защитника. | ||
+ | - Среди всех защитников выбираем того, у кого минимальный вес локализации в клетке. | ||
+ | - для найденного защитника проверяем координаты его "родной" клетки, если она совпадает с текущей клеткой, то пробуем найти другого игрока. | ||
+ | |||
+ | * "лишний" защитник перемещается по направлению к своей "родной" клетке. | ||
+ | (Стоит отметить, что при этом он может и не успеть покинуть текущую клетку, все зависит от запаса времени и скорости) | ||
+ | такой защитник в просмотрщике в поле **mode** получает отметку "RESERVE 2.0" | ||
+ | |||
+ | Затем еще раз проверяем есть ли в клетке "лишние" защитники и если есть то пробуем найти второго "лишнего" защитника. При этом, ранее передвинутый игрок не может быть выбран. | ||
+ | такой защитник в просмотрщике в поле **mode** получает отметку "RESERVE 2.1" | ||
+ | Если второй лишний защитник найден, то он тоже перемещается в point_def, скорректированную на линию мяча. |