Генератор. Обновление 17 сезона

FAQ, вопросы и ответы, регистрация, правила, совет "ПБ-Лиги"

Модераторы: Михась, Duke, Compasses, PBLiga developers

Закрыто
Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Генератор. Обновление 17 сезона

Сообщение Yazynin » 21 окт 2011 15:31

Начинаем в товарищеских играх обкатывать изменения в генераторе.

Данная тема предназначена для информирования о вносимых изменениях и получения ссылок на матчи для более подробного их анализа.
Все сообщения не относящиеся к тестированию генератора будут удаляться.


Перечень внесенных изменений

23.10 (игровой день 2045)
Начало второго тайма перенесено с 45:00 на 46:00, с соответствующим сдвигом окончания матча. Аналогично, Начало дополнительного времени перенесено на 91:00

Исправлено определение победителя в серии пенальти, теперь серия прекращается после досрочной победы бьющей второй команды.

Полностью переработан механизм угловых. Фактически код для углового написан заново.
Изменение коснулось механизма размещения игроков по клеткам при угловых (стандартах) и выбора клетки, куда нацеливается мяч.
Как и ранее, в соответствии с указаниями тактических схем, игроки распределяются по зонам:
- в штрафную (клетки 6,1 6,2 и 6,3)
- около штрафной (клетки 5,1 5,2 5,3, а также 5,0 и 5,4 для некоторых позиций)
- на своем месте

Игроки атакующей команды с опцией “на своем месте” теперь располагаются ближе к своим воротам.
Исправлено первоначальное “размещение” игроков по клеткам - оно должно стать более равномерным.

Далее добавлен этап, когда игроки атаки пытаются уйти в свободные зоны (клетки), а игроки защиты пытаются не оставить свободных игроков соперника.
Все эти "перемещения" игроков можно будет увидеть в просмоторщике. Сейчас осуществляется не более 3 раундов "перемещения" игроков. Естественно, если никто из игроков не хочет "перемещаться", то механизм "перемещения досрочно завершается.

На основании распределения числа игроков атаки и защиты в клетках штрафной подающий выбирает куда нацелить подачу.
Дальнейший алгоритм совпадает с тем, что было в 16 сезоне.

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

25.10 (игровой день 2046)
мелкие исправления по размещению игроков с установкой "на своей позиции" (по замечаниям в этой теме)
добавлен вывод в хронику отладочной информации о срабатывании функции на подбор мяча.

27.10 (игровой день 2047)
Переделана функция подбора мяча.
На то, кто из команд подберет мяч влияют:
1. разница между своими и чужими игроками
2. ПС игроков, оказавшихся в клетке
3. наличие Скорости у игроков
4. наличие Ускороения у игроков (примерно 60% от Ск)
5. Довольно существенно влияет матчевая усталость игроков. Усталость на уровне 10 пунктов компенсирует бонус от Ск

В своей команде игроки выбираются аналогично командам, за исключением пунктов про число игроков.

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

Экспериментально добавлена надпись "мяч спокойно катится по полю" для случая когда в клетке никого не оказалось.

В функции подбора надпись "обрабатывает мяч" замена на "оказывается у мяча"

Экспериментально увеличено число шагов "перемещений" для угловых.

30.10 (игровой день 2048)
01.11 (игровой день 2049)
Подбор мяча. в 5.х и 6.х линиях добавлено влияние голевого чутья (Ч). Влияние в 6.х сильно больше чем в 5.х. А в 5.х не хуже чем влияние скорости.
За успешные подборы игрокам немного повышают оценку. Подборы в своей штрафной ценятся меньше, чем у ворот соперника.

Вывод данных о положениях игроков в просмоторщике при угловых сокращен до 5 и 6 линии (так как остальные игроки все равно не "перемещаются").

Небольшие коррекции по работе со случайными числами при "размещении" игроков атакующей команды. По идее они должны теперь чуть-чуть получше выбирать клетки куда им бежать, что бы получить пас.

Коррекция влияние ПС игроков на то, будет ли игрок при выборе клетки, куда ему "бежать" для получения паса, учитывать - как много игроков защищающейся команды могут оказаться в этой клетке.
Раньше было что игроки с ПС=40 примерно в 1 случае из 3 не учитывали возможное число защитников в клетке. У игроков с ПС =100 такого почти никогда не было. Естественно наличие выбора позиции (П) помогало игрокам. Однако для сильных игроков оно не давало эффекта- у них и так все было хорошо.
В ходе коррекции расширен диапазон "ошибки". Для игрока с ПС=40 шанс на "ошибку" выставлен в 50%. Для ПС=60 это 30%. Для ПС =80 это 15%. По идее теперь наличие П должно быть более заметно в данном компоненте.

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

Очередное изменение фразы в хронике, про отсутствие игроков, подбирающих мяч.

03.11 (игровой день 2050)
В генератор подключена новая схема "расстановки" игроков защищающейся команды (вид защиты). В ордере она доступна под условным именем равномерный. (на вечер 2 ноября 14 составов задействовали эту опцию)

В двух словах его принцип работы основан на многошаговости. (В отличии от вариантов "по игроку" и "зона", которые работают в один шаг)

Перед началом "размещения" мы определяем для каждого из своих игроков список клеток с игроками соперника, до которых они могли бы "добежать". Естественно у части игроков может быть несколько клеток, в которые они могли бы успеть.
На первом шаге мы размещаем тех игроков, у которых только 1 доступная клетка.
На втором шаге размещаем всех, кроме CD LCD RCD SW
На третьем шаге размещаем всех кроме SW
На четвертом шаге размещаем всех оставшихся.
По ходу размещения, мы учитываем сколько защитников уже попали в клетку и стараемся не скапливать игроков своей команды в одной клетке,

Побочным эффектом этого варианта является несколько большая задейстованность нападающих и защитников при игре в защите без мяча - они чаще пытаются мешать пасам назад.

Исправлена работа внутренний функции, связанной с определением типа паса в штрафной. По-идее должны исчезнуть прострелы из 6.2 в 6.2, возможные и другие изменения.

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

При угловых и навесах из клеток 6.1 и 6.3 должны теперь почаще сразу бить по воротам.

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

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

08.11 (игровой день 2052)
Игроки защищающейся команды в 5 и 6 линиях на чужой половине поля экспериментально создают теперь большую закрытость (то есть, поплотнее играют против игроков соперника

Снижены до минимума вероятности появления CF LF RF в зонах 4.х когда команда не владеет мячом. (Нападающие по реже будут отходить к центру поля)

Пробуем для просмоторщика убрать дублирование защищающихся игроков в клетке игрока с мячом.

Стараемся меньше задействовать нападающих против вратарей вводящих мяч в игру.

Для навесов с игры также как для угловых пофикшено отображение игрока на которого навешивается мяч (ранее там ошибочно отображался подающий)

Для вида защиты "Равномерный" - на 1 шаге (игроки, которые могут появится только в одной клетке) из обработки исключены защитники (то есть защитники LCD CD RCD SW размещаются только после всех остальных игроков)

Проверка необходимости изменения тактической схемы и настроя синхронизирована с проверкой замен игроков.
Замены теперь проверяются до свистка на начало 2 тайма - замены в перерыве матча больше не сдвигают время игры.

10.11 (игровой день 2053)
При прерывании навесов мяч существенно реж будет оставаться в той клетке куда его нацеливали.

При прерывании навеса в хронике пишется в какую клетку улетел мячик.

Проверка необходимости смены тактических схем перенесена на после проверок необходимости проведения замен. То есть вначале замены игроков и только потом схемы.

Вратарь забравший мяч на выходе теперь вводит его в игру из той же клетки, а не из 0.2

Для неудачных навесов с игры подающий игрок в просмоторщике больше не отображается как находящийся в штрафной.

Для равномерной схемы защиты:
-- центральные игроки должны много реже забредать на фланги
-- усилено желание защитников прикрыть игроков атаки в штрафной
-- при прочих равных защитники (RD LCD CD RCD LD SW) предпочитают закрыть игрока в штрафной.
-- попытки уменьшить желание идти третьи в клетку.

13.11 (игровой день 2054)
15.11 (игровой день 2055)
- и в генераторе переключаемся на 17 сезон (статистика игроков должна записаться в игры 17 сезона)

- поправлен баг с координатами вратарей гостей, которые забирали мяч в руки.

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

17.11 (игровой день 2056)
Скорректированы зоны ответственности SW LCD CD RCD при игре без мяча.
SW в нормальном состоянии старается занять любую из трех клеток в штрафной
у него на 0 линии
......было...{ 0, 9, 10, 9, 0}
......стало..{ 0, 10,10, 10, 0}
CD на 0 и 1 линии
......было
{ 1, 3, 6, 3, 1},
{ 1, 7, 9, 7, 1}
......стало
{ 1, 4, 6, 4, 1},
{ 1, 8, 9, 8, 1}

RCD на 0 и 1 линии
......было
{ 0, 1, 5, 6, 4},
{ 0, 1, 8, 9, 5}
......стало
{ 0, 1, 6, 6, 3},
{ 0, 3, 9, 9, 5}

LCD на 0 и 1 линии
......было
{ 4, 6, 5, 1, 0},
{ 5, 9, 8, 1, 0}
......стало
{ 3, 6, 6, 1, 0},
{ 5, 9, 9, 3, 0}

исправление в подходе к распределению игроков атаки по клеткам. Ранее для игрока атаки выбиралась одна из клеток, куда он теоретически мог бы добежать. А для игроков защиты осуществлялась проверка - удалось ли им "добежать" в определенную клетку или нет. Теперь и для атакующих проводится опробование - "добежали" ли они до клетки паса или нет. И выбор уже осуществляется только среди тех клеток куда они добежали а не среди всех теоретически возможных.
Как следствие - игроки атаки, видимо, теперь чуть чаще оставаться в тех клетках где они засветились.

исправлены координаты по которым в лог просмотрщика записывались позиции всех игроков когда после навеса мяч было некому подобрать. (Ошибочные координаты были только для гостевой команды и только в этом такте - на игру они не влияли). Должны исчезнуть неправильные "навесы" в анализаторе.

20.11 (игровой день 2057)
Упрощен кусок кода отвечающий за вычисление вероятности появления игрока в клетке для команды владеющей мячом. Возможно, сложность это кода приводила к появлению игроков атакующей команды в клетках не предназначенных для позиций игроков.
(по крайней мере, просмотр нескольких матчей с этой правкой не выявил защитников убежавших в центр поля, или ДМ-ов на фланг атаки).

22.11 (игровой день 2058)
Еще раз правим появление игроков при атаке своей команды не в своих клетках. ((на этот раз уверенность в успехе много большая)

При навесах, для игроков которым сказано быть около штрафной, исключены в качестве начальных точек размещения клетки 5.0 и 5.4.

Экспериментально увеличен срок, в течении которого для локализованного в клетке игрока принудительно устанавливается базовая вероятность появления в этой клетке в 100% (усталость никто не отменял).

Для навесов в 6.1 и 6.3 добавлена возможность игрокам атаки скинуть мяч под удар. Это возможность появляется, если в клетке есть не менее двух игроков атаки и не более одного игрока защиты (который проиграл свою борьбу за верховой мяч). В этом случае удар наносится сходу, то есть другие игроки защиты не успевают принять участие в эпизоде. Однако единственный игрок защиты в клетке может попытаться блокировать удар по воротам.

24.11 (игровой день 2059)
Ликвидирована возможность скинуть мяч под удар самому себе.

Небольшие доработки в "добегании" игроков защиты на игрока выбегающего на замыкание навеса. Должна стать чуть лучше. Исправлен не часто возникающий баг с ошибочной фиксацией локализации игроков защиты при навесах.
Коррекция влияние спецух на вероятности появления игроков в клетке при навесах с игры. По коду разведены атакующие и защищающиеся игроки.
Для атакующих игроков, повышаются шансы появления в клетке являющейся конечной точкой навеса:
П - Выбор позиции
Г - игра головой
Ч - голевое чутье
ST - позиция на поле (примерно в 2 раза меньше влияет чем любая из вышеперечисленных спецух)

Для защищающихся игроков:
П - Выбор позиции
Г - игра головой
Оп - опека
SW - позиция на поле (примерно в 2 раза меньше влияет чем любая из вышеперечисленных спецух)

Исправления в равномерной схеме игры защитников:
- увеличено желание закрыть свободного игрока атаки в штрафной
- увеличено желание закрыть свободного игрока с мячом
- усилено не желание идти в клетку, если там защитников больше чем атакующих
- немного усилено желание идти в клетки 5.2 и 6.2 если они являются пасом не по стилю.
- для защитников (RD LD LCD CD RCD SW) сделано обнуление желание идти в клетку в 5.х если там число защитников больше чем атакующих

Правки зон игры без мяча для следующих позиций:
SW
было:
{ 0, 2, 3, 2, 0},
{ 0, 10,10,10, 0}
стало:
{ 0, 2, 3, 2, 0},
{ 0, 10,11,10, 0}};

CD
было:
{ 1, 4, 6, 4, 1},
{ 1, 8, 9, 8, 1}
стало:
{ 1, 4, 6, 4, 1},
{ 1, 8,10, 8, 1}

LCD
было:
{ 3, 6, 6, 1, 0},
{ 5, 9, 9, 3, 0}
стало:
{ 3, 6, 6, 1, 0},
{ 5,10, 9, 4, 0}

RCD
было:
{ 0, 1, 6, 6, 3},
{ 0, 3, 9, 9, 5}
стало:
{ 0, 1, 6, 6, 3},
{ 0, 4, 9,10, 5}

LD
было:
{ 8, 6, 3, 0, 0},
{ 9, 9, 5, 0, 0}};
стало:
{ 9, 6, 3, 0, 0},
{ 9, 9, 5, 0, 0}};

RD
было:
{ 0, 0, 3, 6, 8},
{ 0, 0, 5, 8, 9}};
стало:
{ 0, 0, 3, 6, 9},
{ 0, 0, 5, 9, 9}};

Немного уменьшен срок локализации игроков в клетке относительно предыдущего тура, однако он все еще больше чем раньше.

Добавлена запись в базу данных истории смены настроя команд по ходу матча (задел под отображение этой информации в онлайне и в 2Д)
Последний раз редактировалось Yazynin 24 ноя 2011 10:17, всего редактировалось 18 раз.

metal
Публицист
Сообщения: 1850
Зарегистрирован: 07 дек 2005 12:36
Откуда: Баумит-Яблонец(Чехия) id=915 Тренирую молодежку

Сообщение metal » 21 окт 2011 17:06

Игроки атакующей команды с опцией “на своем месте” теперь располагаются ближе к своим воротам.
Можно пояснить, где должны располагаться атакующие игроки при такой установке(форварды, AM-ы, вингеры)?

DanielDiGizz
Публицист
Сообщения: 1685
Зарегистрирован: 09 янв 2009 15:24
Откуда: Minsk, Бесёлидья (Лежё) Албания, id-793
Контактная информация:

Сообщение DanielDiGizz » 22 окт 2011 14:57

metal писал(а):
Игроки атакующей команды с опцией “на своем месте” теперь располагаются ближе к своим воротам.
Можно пояснить, где должны располагаться атакующие игроки при такой установке(форварды, AM-ы, вингеры)?
И остальные игроки тоже.

IGOROK
Сам себе философ
Сообщения: 3266
Зарегистрирован: 06 июн 2007 15:09
Откуда: BY г.Гомель . Черноморец Бургас (Бургас)Болгария.id=1191
Контактная информация:

Сообщение IGOROK » 22 окт 2011 18:41

metal, DanielDiGizz, ну пока ответит руководство,можно предположить,что просто пропущена фраза " своей зоны ответственности".....

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 23 окт 2011 01:31

IGOROK писал(а):metal, DanielDiGizz, ну пока ответит руководство,можно предположить,что просто пропущена фраза " своей зоны ответственности".....
не дословно так, но очень близко к тексту. :)

Лень расписывать словвами, поэтому кусок кода. Который не догма, но может еще измениться.
На всякий случай, уточняю, что это игроки которым не было сказано идти в штрафную или близко к ней (около штрафной).
Если будут аргументированные уточнению, готов их рассмотреть. :)

Код: Выделить всё

		//нападающие атакующих
		list_att_f = new ArrayList<CPointVal>();
		list_att_f.add( new CPointVal(6,1, 400) );
		list_att_f.add( new CPointVal(6,2, 600) );
		list_att_f.add( new CPointVal(6,3, 400) );
		
		//АМ атакующих
		list_att_am = new ArrayList<CPointVal>();
		list_att_am.add( new CPointVal(6,1, 150) );
		list_att_am.add( new CPointVal(6,2, 200) );
		list_att_am.add( new CPointVal(6,3, 150) );
		list_att_am.add( new CPointVal(5,1, 100) );
		list_att_am.add( new CPointVal(5,2, 300) );
		list_att_am.add( new CPointVal(5,3, 100) );
		
		//CМ атакующих
		list_att_cm = new ArrayList<CPointVal>();
		list_att_cm.add( new CPointVal(5,1, 100) );
		list_att_cm.add( new CPointVal(5,2, 100) );
		list_att_cm.add( new CPointVal(5,3, 100) );
		list_att_cm.add( new CPointVal(4,1, 200) );
		list_att_cm.add( new CPointVal(4,2, 300) );
		list_att_cm.add( new CPointVal(4,3, 200) );
		
		//LМ атакующих
		list_att_lm = new ArrayList<CPointVal>();
		list_att_lm.add( new CPointVal(5,0, 100) );
		list_att_lm.add( new CPointVal(5,1, 200) );
		list_att_lm.add( new CPointVal(5,2, 100) );
		list_att_lm.add( new CPointVal(4,0, 500) );
		list_att_lm.add( new CPointVal(4,1, 100) );
		
		//RМ атакующих
		list_att_rm = new ArrayList<CPointVal>();
		list_att_rm.add( new CPointVal(5,4, 100) );
		list_att_rm.add( new CPointVal(5,3, 200) );
		list_att_rm.add( new CPointVal(5,2, 100) );
		list_att_rm.add( new CPointVal(4,4, 500) );
		list_att_rm.add( new CPointVal(4,3, 100) );
	
		//LW атакующих
		list_att_lw = new ArrayList<CPointVal>();
		list_att_lw.add( new CPointVal(6,0, 100) );
		list_att_lw.add( new CPointVal(6,1, 200) );
		list_att_lw.add( new CPointVal(6,2, 200) );
		list_att_lw.add( new CPointVal(5,0, 300) );
		list_att_lw.add( new CPointVal(5,1, 100) );
		list_att_lw.add( new CPointVal(5,2, 100) );
		
		//RW атакующих
		list_att_rw = new ArrayList<CPointVal>();
		list_att_rw.add( new CPointVal(6,4, 100) );
		list_att_rw.add( new CPointVal(6,3, 200) );
		list_att_rw.add( new CPointVal(6,2, 200) );
		list_att_rw.add( new CPointVal(5,4, 300) );
		list_att_rw.add( new CPointVal(5,3, 100) );
		list_att_rw.add( new CPointVal(5,2, 100) );
		
		//LB атакующих
		list_att_lb = new ArrayList<CPointVal>();
		list_att_lb.add( new CPointVal(1,0, 400) );
		list_att_lb.add( new CPointVal(1,1, 300) );
		list_att_lb.add( new CPointVal(1,2, 100) );
		list_att_lb.add( new CPointVal(0,1, 200) );
		
		//RB атакующих
		list_att_rb = new ArrayList<CPointVal>();
		list_att_rb.add( new CPointVal(1,4, 400) );
		list_att_rb.add( new CPointVal(1,3, 300) );
		list_att_rb.add( new CPointVal(0,3, 200) );
		list_att_rb.add( new CPointVal(1,2, 100) );
		
		//LD атакующих
		list_att_ld = new ArrayList<CPointVal>();
		list_att_ld.add( new CPointVal(1,0, 300) );
		list_att_ld.add( new CPointVal(1,1, 300) );
		list_att_ld.add( new CPointVal(0,0, 100) );
		list_att_ld.add( new CPointVal(0,1, 300) );
		
		//RD атакующих
		list_att_rd = new ArrayList<CPointVal>();
		list_att_ld.add( new CPointVal(1,4, 300) );
		list_att_ld.add( new CPointVal(1,3, 300) );
		list_att_ld.add( new CPointVal(0,4, 100) );
		list_att_ld.add( new CPointVal(0,3, 300) );
		
		//DM атакующих
		list_att_dm = new ArrayList<CPointVal>();
		list_att_dm.add( new CPointVal(2,1, 250) );
		list_att_dm.add( new CPointVal(2,2, 400) );
		list_att_dm.add( new CPointVal(2,3, 250) );
		list_att_dm.add( new CPointVal(1,2, 100) );
		
		//CD атакующих
		list_att_cd = new ArrayList<CPointVal>();
		list_att_cd.add( new CPointVal(1,1, 200) );
		list_att_cd.add( new CPointVal(1,2, 300) );
		list_att_cd.add( new CPointVal(1,3, 200) );
		list_att_cd.add( new CPointVal(0,1, 100) );
		list_att_cd.add( new CPointVal(0,2, 200) );
		list_att_cd.add( new CPointVal(0,3, 100) );
		
		//SW атакующих
		list_att_sw = new ArrayList<CPointVal>();
		list_att_sw.add( new CPointVal(1,2, 300) );
		list_att_sw.add( new CPointVal(0,1, 150) );
		list_att_sw.add( new CPointVal(0,2, 400) );
		list_att_sw.add( new CPointVal(0,3, 150) );

CoolSpider
Доктор форумных наук
Сообщения: 11745
Зарегистрирован: 17 фев 2004 11:20
Откуда: Северодонецк (Украина)
Контактная информация:

Сообщение CoolSpider » 23 окт 2011 13:11

Yazynin, даешь открытый код! :))

p.s. почему бы не озвучить точные формулы влияния спец? формулу для капитанского бонус? влияние морали? влияние Ун? глядишь и вопросов меньше было бы, а может и баги какието отловили бы ;)

BearPunk
Бакалавр форумных наук
Сообщения: 3521
Зарегистрирован: 31 июл 2007 23:22
Откуда: Гранитас (Литва) id=588
Контактная информация:

Сообщение BearPunk » 23 окт 2011 13:15

а что означают цифры в хронике?
33 Угловой... А. Сивинский навешивает в штрафную... (471)
57 Угловой... А. Сивинский подает... (841)

Serge
Магистр форумных наук
Сообщения: 6961
Зарегистрирован: 22 мар 2003 14:57
Откуда: Cент-Джордж (Кемерово, Мальта), "Сексиголд-невынимаянах" Erbatax-il darba champion!
Контактная информация:

Сообщение Serge » 23 окт 2011 14:01

http://pbliga.com/view_game.php?gameid=10514856
такты 690-691
пример телепортации RD от своей штрафной (из 1.2) к чужой (в 5.3) после подачи углового. RD подобрал отскок и организовал голевую атаку.
Задание у RD было оставаться на своем месте.

Анжик
Доктор форумных наук
Сообщения: 21602
Зарегистрирован: 21 июл 2005 07:43
Откуда: Иваново, РБ, Рил (Уэльс). Детские провокации аутистов - на таких не обижаются:)
Благодарил (а): 9 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Анжик » 23 окт 2011 14:09

http://pbliga.com/view_match.php?id=10514343
Не перебор с угловыми? 22 на 2 !!! И это при том, что почти по всем показателям преимущество у моей команды...

metal
Публицист
Сообщения: 1850
Зарегистрирован: 07 дек 2005 12:36
Откуда: Баумит-Яблонец(Чехия) id=915 Тренирую молодежку

Сообщение metal » 23 окт 2011 23:11

Yazynin,

Код: Выделить всё

//RD атакующих
      list_att_rd = new ArrayList<CPointVal>();
      list_att_ld.add( new CPointVal(1,4, 300) );
      list_att_ld.add( new CPointVal(1,3, 300) );
      list_att_ld.add( new CPointVal(0,4, 100) );
      list_att_ld.add( new CPointVal(0,3, 300) ); 
Выглядит как баг :)
не плохо бы было уточнить, что значит третья цифра и каком диапазоне варьируется.

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 00:47

BearPunk писал(а):а что означают цифры в хронике?
33 Угловой... А. Сивинский навешивает в штрафную... (471)
57 Угловой... А. Сивинский подает... (841)
это такт, на котором смотреть угловой в просмоторщике.
После тестов будет убрано.

Serge
Магистр форумных наук
Сообщения: 6961
Зарегистрирован: 22 мар 2003 14:57
Откуда: Cент-Джордж (Кемерово, Мальта), "Сексиголд-невынимаянах" Erbatax-il darba champion!
Контактная информация:

Сообщение Serge » 24 окт 2011 04:28

что значит третья цифра и каком диапазоне варьируется
это вторая цифра ... первая - позиция игрока на поле при стандарте, вторая - вероятность его появления там. (если что, то я просто догадался)

Из правил Управления клубом 8.2.3. Помощники тренеров
3. K = 1 - q * delta
К - коэффициент эффективности. q - плавающий числовой параметр. В 14-м сезоне его значение будет равняться 0,01. В 15-м сезоне - 0,02. В дальнейшем возможна корректировка коэффициента в любую сторону.
Вопрос - какой будет величина параметра q в 17-ом сезоне? ... и для справки - в 16-ом он сколько был?

Vic111
Доктор форумных наук
Сообщения: 14670
Зарегистрирован: 16 май 2008 12:44
Откуда: г.Молодечно, id=1193
Благодарил (а): 7 раз
Поблагодарили: 4 раза
Контактная информация:

Сообщение Vic111 » 24 окт 2011 13:00

Анжик писал(а):http://pbliga.com/view_match.php?id=10514343
Не перебор с угловыми? 22 на 2 !!! И это при том, что почти по всем показателям преимущество у моей команды...
Интересно посмотреть на статистику навесов и прострелов у ворот Рила в рассматриваемом матче :
Прострелы: 1 успешный, 1 поймал вратарь, 1 выбит в поле на своего, 5 - на чужого, 5 выбито на угловой, 4 заблокировано - и каждый раз на угловой.
Навесы: 4 успешных, 1 - некому замкнуть передачу, 11 выбиты на угловой, 7 выбиты в поле на своего, 8 - на чужого.
Итого 48 навесов и прострелов: 5 успешных, 42 прервали защитники и вратарь.
Из этих 42 выбиты на угловой - 20, на своего - 8, на чужого - 13, поймал вратарь - 1.
Действия вратаря Рила Биллингсли 31-82 Р В Пр П при навесах и прострелах: 1 раз поймал мяч (с прострела), 1 раз ошибся на выходе, 2 раза выбил на чужого, 2 раза - на угловой. Как-то очень мало он вступал в игру на выходе, учитывая его силу и количество навесов и прострелов.

Отдельная статистика по навесам с угловых (всего 22): успешных - 3, выбито на угловой - 6, на своего - 5, на чужого - 8.
Навесы и прострелы с игры (всего 17): успешных - 0, выбиты на угловой - 14, на своего - 3.

Не слишком ли велика у нас вероятность того, что игрок обороняющейся команды выбивает мяч после навеса или прострела на угловой? Особенно настораживают последние цифры - при навесах и прострелах с игры.

CoolSpider
Доктор форумных наук
Сообщения: 11745
Зарегистрирован: 17 фев 2004 11:20
Откуда: Северодонецк (Украина)
Контактная информация:

Сообщение CoolSpider » 24 окт 2011 13:47

Yazynin, а почему закрытость при стандартах у игроков всегда зелененькая?

Изображение

ну и стандартный вопрос: на сколько можно верить картинке?
если можно, то для какой цели собралась эта тусовка? такты 1002-1003 идет именно перемещение на этих позициях... почему мой АМ и ДМ соперника разбежались в разные стороны? что РСД соперника делает под ЛД?

p.s. http://pbliga.com/view_match.php?id=10514447

Serge
Магистр форумных наук
Сообщения: 6961
Зарегистрирован: 22 мар 2003 14:57
Откуда: Cент-Джордж (Кемерово, Мальта), "Сексиголд-невынимаянах" Erbatax-il darba champion!
Контактная информация:

Сообщение Serge » 24 окт 2011 13:58

что РСД соперника делает под ЛД
помогает крыть эту свору
почему мой АМ и ДМ соперника разбежались в разные стороны
а вот это уже непонятно, ДМ явно не верное выбрал позицию, хотя у него есть П и он достаточно силен ... что-то не так ...

CoolSpider
Доктор форумных наук
Сообщения: 11745
Зарегистрирован: 17 фев 2004 11:20
Откуда: Северодонецк (Украина)
Контактная информация:

Сообщение CoolSpider » 24 окт 2011 13:59

Yazynin писал(а): Лень расписывать словвами, поэтому кусок кода. Который не догма, но может еще измениться.
На всякий случай, уточняю, что это игроки которым не было сказано идти в штрафную или близко к ней (около штрафной).
Если будут аргументированные уточнению, готов их рассмотреть. :)

Код: Выделить всё

		//нападающие атакующих
		list_att_f = new ArrayList<CPointVal>();
		list_att_f.add( new CPointVal(6,1, 400) );
		list_att_f.add( new CPointVal(6,2, 600) );
		list_att_f.add( new CPointVal(6,3, 400) );
...		
1. где позиции LAM, RAM, LCM, RCM, LCD, RCD?
2. правильно ли я понял, что игроки не смотрят на позиции своих игроков и игроков соперника? т.е. они размещаются рандомно согласно приведенному коду... т.е. защита может рандомно разместиться на правом фланге и пропустить контру по левоум флангу?

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 16:07

metal писал(а):Yazynin,

Код: Выделить всё

//RD атакующих
      list_att_rd = new ArrayList<CPointVal>();
      list_att_ld.add( new CPointVal(1,4, 300) );
      list_att_ld.add( new CPointVal(1,3, 300) );
      list_att_ld.add( new CPointVal(0,4, 100) );
      list_att_ld.add( new CPointVal(0,3, 300) ); 
Выглядит как баг :)
не плохо бы было уточнить, что значит третья цифра и каком диапазоне варьируется.
Спасибо за внимательность - поправил.
Третья цифра не важна для сути. Это просто весовой коэффициент данной клетки.

Раз хорошо смотрите, ловите вторую команду:
:)

Код: Выделить всё

		// нападающие защищающихся
		list_def_f = new ArrayList<CPointVal>();
		list_def_f.add( new CPointVal(5,1, 200) );
		list_def_f.add( new CPointVal(5,2, 400) );
		list_def_f.add( new CPointVal(5,3, 200) );
		list_def_f.add( new CPointVal(4,2, 200) );
		
		// AM защищающихся
		list_def_am = new ArrayList<CPointVal>();
		list_def_am.add( new CPointVal(4,1, 300) );
		list_def_am.add( new CPointVal(4,2, 400) );
		list_def_am.add( new CPointVal(4,3, 300) );
		
		// CM защищающихся
		list_def_cm = new ArrayList<CPointVal>();
		list_def_cm.add( new CPointVal(3,1, 200) );
		list_def_cm.add( new CPointVal(3,2, 300) );
		list_def_cm.add( new CPointVal(3,3, 200) );
		list_def_cm.add( new CPointVal(2,2, 300) );
		
		// LM защищающихся
		list_def_lm = new ArrayList<CPointVal>();
		list_def_lm.add( new CPointVal(3,0, 300) );
		list_def_lm.add( new CPointVal(2,0, 300) );
		list_def_lm.add( new CPointVal(3,1, 200) );
		list_def_lm.add( new CPointVal(2,0, 200) );
		
		// RM защищающихся
		list_def_rm = new ArrayList<CPointVal>();
		list_def_rm.add( new CPointVal(3,4, 300) );
		list_def_rm.add( new CPointVal(2,4, 300) );
		list_def_rm.add( new CPointVal(3,3, 200) );
		list_def_rm.add( new CPointVal(2,3, 200) );
		
		// LW защищающихся
		list_def_lw = new ArrayList<CPointVal>();
		list_def_lw.add( new CPointVal(4,0, 300) );
		list_def_lw.add( new CPointVal(3,0, 300) );
		list_def_lw.add( new CPointVal(4,1, 200) );
		list_def_lw.add( new CPointVal(3,0, 200) );
		
		// RW защищающихся
		list_def_rw = new ArrayList<CPointVal>();
		list_def_rw.add( new CPointVal(4,4, 300) );
		list_def_rw.add( new CPointVal(3,4, 300) );
		list_def_rw.add( new CPointVal(4,3, 200) );
		list_def_rw.add( new CPointVal(3,3, 200) );
		
		// LB защищающихся
		list_def_lb = new ArrayList<CPointVal>();
		list_def_lb.add( new CPointVal(1,0, 300) );
		list_def_lb.add( new CPointVal(1,1, 300) );
		list_def_lb.add( new CPointVal(1,2, 200) );
		list_def_lb.add( new CPointVal(0,1, 200) );
		
		// RB защищающихся
		list_def_rb = new ArrayList<CPointVal>();
		list_def_rb.add( new CPointVal(1,4, 300) );
		list_def_rb.add( new CPointVal(1,3, 300) );
		list_def_rb.add( new CPointVal(1,2, 200) );
		list_def_rb.add( new CPointVal(0,3, 200) );
		
		// LD защищающихся
		list_def_ld = new ArrayList<CPointVal>();
		list_def_ld.add( new CPointVal(0,1, 400) );
		list_def_ld.add( new CPointVal(0,2, 400) );
		list_def_ld.add( new CPointVal(1,1, 200) );
		
		// RD защищающихся
		list_def_rd = new ArrayList<CPointVal>();
		list_def_rd.add( new CPointVal(0,3, 400) );
		list_def_rd.add( new CPointVal(0,2, 400) );
		list_def_rd.add( new CPointVal(1,3, 200) );
		
		// DM защищающихся
		list_def_dm = new ArrayList<CPointVal>();
		list_def_dm.add( new CPointVal(1,1, 200) );
		list_def_dm.add( new CPointVal(1,2, 300) );
		list_def_dm.add( new CPointVal(1,3, 200) );
		list_def_dm.add( new CPointVal(0,2, 300) );
		
		// SW защищающихся
		list_def_sw = new ArrayList<CPointVal>();
		list_def_sw.add( new CPointVal(0,1, 300) );
		list_def_sw.add( new CPointVal(0,2, 400) );
		list_def_sw.add( new CPointVal(0,3, 300) );
		
		// CD защищающихся
		list_def_cd = new ArrayList<CPointVal>();
		list_def_cd.add( new CPointVal(0,1, 300) );
		list_def_cd.add( new CPointVal(0,2, 300) );
		list_def_cd.add( new CPointVal(0,3, 300) );
		
		// LCD защищающихся
		list_def_lcd = new ArrayList<CPointVal>();
		list_def_lcd = (ArrayList<CPointVal>) list_def_cd.clone();
		list_def_lcd.add( new CPointVal(1,1, 100) );
		
		// RCD защищающихся
		list_def_rcd = new ArrayList<CPointVal>();
		list_def_rcd = (ArrayList<CPointVal>) list_def_cd.clone();
		list_def_rcd.add( new CPointVal(1,3, 100) );
		
		list_def_cd.add( new CPointVal(1,2, 100) ); 

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 16:19

Serge писал(а):Вопрос - какой будет величина параметра q в 17-ом сезоне? ... и для справки - в 16-ом он сколько был?
1. К генератору это не относится :)
2. об изменении этого параметра будет предварительный ананос. Пока его не было. :)

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 16:28

CoolSpider писал(а):Yazynin, а почему закрытость при стандартах у игроков всегда зелененькая?
закрытость рассчитывается только после завершения всех "перемещений" игроков в штрафной и около неё. На момент вывода положения игроков она еще не посчитана.

Возможно, надо добавить еще один такт, на котором можно было бы увидеть закрытость.
CoolSpider писал(а): ну и стандартный вопрос: на сколько можно верить картинке?
если можно, то для какой цели собралась эта тусовка? такты 1002-1003 идет именно перемещение на этих позициях... почему мой АМ и ДМ соперника разбежались в разные стороны? что РСД соперника делает под ЛД?

p.s. http://pbliga.com/view_match.php?id=10514447
При стандартах и угловых учитываются клетки 5.х ? и 6.х. Положение остальных игроков существенно только с точки зрения контр-атаки - сумеют они добежать до игрока с мячом или нет.

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 16:34

CoolSpider писал(а): 1. где позиции LAM, RAM, LCM, RCM, LCD, RCD?
LAM, RAM это АМ.
LCM, RCM это СМ
LCD, RCD это СД
CoolSpider писал(а):2. правильно ли я понял, что игроки не смотрят на позиции своих игроков и игроков соперника? т.е. они размещаются рандомно согласно приведенному коду... т.е. защита может рандомно разместиться на правом фланге и пропустить контру по левоум флангу?
Для расчета контратаки важно, успевает или нет защищающийся игрок к игроку с мячом. Это оценивается через расстояние между координатами игрока с мячом и местом, где был игрок защиты и временем прошедшим с того времени. То есть по факту, для игроков защиты, не задействованных в угловых, в терминах генератора рисовать не клетку их размещения, а отображать бы радиус зоны, где они могут оказаться через некоторое время. :)

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 16:35

Анжик писал(а):http://pbliga.com/view_match.php?id=10514343
Не перебор с угловыми? 22 на 2 !!! И это при том, что почти по всем показателям преимущество у моей команды...
В первом посте данного топика нет ничего, что бы говорило о коррекции появления угловых. :)

Sombre
Сообщения: 989
Зарегистрирован: 17 апр 2008 22:57
Откуда: Беларусь, Минск
Контактная информация:

Сообщение Sombre » 24 окт 2011 16:41

Yazynin,

Код: Выделить всё

      // LM защищающихся
      list_def_lm = new ArrayList<CPointVal>();
      list_def_lm.add( new CPointVal(3,0, 300) );
      list_def_lm.add( new CPointVal(2,0, 300) );
      list_def_lm.add( new CPointVal(3,1, 200) );
      list_def_lm.add( new CPointVal(2,0, 200) );

      // LW защищающихся
      list_def_lw = new ArrayList<CPointVal>();
      list_def_lw.add( new CPointVal(4,0, 300) );
      list_def_lw.add( new CPointVal(3,0, 300) );
      list_def_lw.add( new CPointVal(4,1, 200) );
      list_def_lw.add( new CPointVal(3,0, 200) );
А в 4-тых строках не баг случайно? =)
Может все-таки нужно 2,1 для LM и 3,1 для LW, соответственно? =)

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 17:16

Serge писал(а):http://pbliga.com/view_game.php?gameid=10514856
такты 690-691
пример телепортации RD от своей штрафной (из 1.2) к чужой (в 5.3) после подачи углового. RD подобрал отскок и организовал голевую атаку.
Задание у RD было оставаться на своем месте.
Несколько странный момент. Чисто теоретически такая "телепортация" могла бы возникнуть (как способ выхода из зацикливания генератора), но по совокупности это маловероятно.
Попробуем добавить в хронику немного отладочной информации по подборам.

По коду, пока, не вижу причины для подобного поведения.

Yazynin
Руководство ПБ-Лиги
Сообщения: 7325
Зарегистрирован: 26 мар 2003 14:38
Откуда: Флориана (Мальта)
Контактная информация:

Сообщение Yazynin » 24 окт 2011 17:17

Sombre писал(а): А в 4-тых строках не баг случайно? =)
Может все-таки нужно 2,1 для LM и 3,1 для LW, соответственно? =)
На баг не тянет, но лучше сделать симметрично для левой и правой половины. :)
Поправил.

CoolSpider
Доктор форумных наук
Сообщения: 11745
Зарегистрирован: 17 фев 2004 11:20
Откуда: Северодонецк (Украина)
Контактная информация:

Сообщение CoolSpider » 24 окт 2011 17:24

Yazynin писал(а):
CoolSpider писал(а): ну и стандартный вопрос: на сколько можно верить картинке?
если можно, то для какой цели собралась эта тусовка? такты 1002-1003 идет именно перемещение на этих позициях... почему мой АМ и ДМ соперника разбежались в разные стороны? что РСД соперника делает под ЛД?

p.s. http://pbliga.com/view_match.php?id=10514447
При стандартах и угловых учитываются клетки 5.х ? и 6.х. Положение остальных игроков существенно только с точки зрения контр-атаки - сумеют они добежать до игрока с мячом или нет.
первая попавшаяся контра из тогоже матча

Изображение

4 Угловой... С. Станич навешивает в штрафную... (38) Ф. Максим прерывает подачу... Р. Чобану обрабатывает мяч... Р. Чобану делает длинную передачу в центр... плохой пас... но А. Занк первым успевает к мячу... А. Занк отдает мяч на правый фланг... Р. Дойкару свободно получает мяч... Р. Дойкару продвигается с мячом вперед... Р. Дойкару делает длинный пас в центр... Ж. Ляфуркад свободно получает мяч... Ж. Ляфуркад простреливает!... Хави Герреро опережает Д. Фолино... Хави Герреро бьет из пределов штрафной!... Мяч летит по центру ворот... Э. Маклин реагирует на удар... Э. Маклин отбивает мяч на угловой...

как так вышло?
ЛСД и свип не успели
ДМа утянул АМ
ЛД? почему он не поучаствовал? не добежал на своем место с места РСД, где он находится при стандарте? не успел добежать?
что и где делают РД и РСД пока идет вся контра?
почему в последнем такте нет ЛСД? хотя свип и мой ST (бугога) уже вернулись, а они старше и без всяких Ск

Закрыто