QUOTE(Санёк @ Oct 7 2018, 01:16)
Что-то типа транзакции, что ли...то есть, либо все замены транзакции, либо ни одной. А то делаешь несколько перестановок при плохом счете, а из-за ранее случившейся травмы/удаления одно изменение не проходит, и выходит полная лажа.
Крутое предложение! Однозначно нужно.
Делать замены блоками. У каждой замены есть принадлежность к блоку замен за номером N. Блок может содержать от 1 до M замен. Если хоть одна замена из блока не проходит, то не делается ни одна замена блока.
Кроме того из того, что было сказано выше, мне нравятся:
1) замены по соотношению ударов
2) замены по владению мячом
Еще нужна замена строго по счету (или комплексная "разница+кол-во пропущенных"). Для двухраундовых кубковых матчей, когда допустим 1-0 тебя устраивает, а 2-1 уже нет.
Так же интересны замены по комплексу условий (но это сложно реализовать, наверно, на далекое будущее):
1) соотношение ударов и смена тактики соперником (или наличие Х замен по координатам)
2) владение мячом и смена тактики соперником (или наличие Х замен по координатам)
3) разница голов/конкретный счет и смена тактики соперником (или наличие Х замен по координатам)
Эта часть интересна как продолжение тактической борьбы. Допустим, если я веду игру (больше ударов, владею мячом, счет устраивает) и соперник перестраивает свою тактическую схему (куча замен по координатам, смена тактики), то я могу попытаться предугадать, как именно он перестроится, и перестроиться самому соответствующим образом.
Ну и по травмам хорошо бы что-то придумать. Например, галку в замене, которая будет обеспечивать прохождение замены в случае, если игрока в поле "Уходящий" уже кто-то заменил по травме. Т.е. надо покрыть следующие варианты при травме игрока А до запланированной замены:
1) если в заявке есть замена А на А со сменой координат, то вышедший из-за травмы игрок С меняет координаты
2) если есть замена А на Б, то вышедщий на замену игрок С заменяется на Б. А если по травме на замену вышел как раз Б, то он меняет координаты, получает стандарты в соответствии с запланированной заменой.
И еще общая мысль. Сейчас на одну замену - одно условие. Можно расширить принцип до комбинации двух условий, между которыми менеджер ставит на выбор И/ИЛИ.
Выглядеть это может примерно так:
Минута | Тип условия 1 | Условие 1 | Тип условия 2 | Условие 2 | Связь условий | Сама замена
Типы условий те, какие реализуем - счет, разница, владение, удары, перестроение соперника, замена по координатам у соперника+ тип "отсутствует", который по умолчанию стоит в "Условие 2".
Сами условия в зависимости от типов:
счет, разница, владение, удары - числовые
перестроение соперника - булево условие
и т.д.
Связь условий - И или ИЛИ.