Первым делом идет формирование списка клеток, куда игрок мог бы успеть. В отладочном слое это отображается следующим образом:
RCD:{(1,2)=848[910]f (1,3)=1000[377] }
позиция игрока:{(координаты клетки относительно своих ворот)=вероятность локализации[случайное число]} Наличие буквы “f” говорит о том, что игрок не прошел проверку на локализацию.
При размещении игрока указываются координаты клетки (относительно ворот атакующих), вес определяющий в какую из клеток игрок может попасть, для каждой клетки указывается также число игроков атаки и число игроков защиты, которые уже размещены в этой клетке
RDM:{4,2:144000{1/0}; 5,2:36000{2/0};
Например, эта запись означает, что в 5,2 два атакующих игрока, а в 4,2 один.
Первым делом формируется отсортированный по ПС список локализованных игроков атаки.
Затем идет формирование списка клеток, куда игрок мог бы успеть. В отладочном слое это отображается следующим образом:
AM:(4,2)62=804=f,(3,2)36=43
позиция игрока:(координаты клетки относительно своих ворот)=вероятность локализации[случайное число]} Наличие буквы “f” говорит о том, что игрок не прошел проверку на локализацию.
Далее формируется список защищающихся игроков, отсортированный по ПС игроков (более сильные игроки выше)
В цикле просматриваем защищающихся игроков, перебирая в качестве под цикла локализованных игроков атаки. Если защитник прошел проверку на локализацию, то считаем параметр, задающий вес клетки, который сильно зависит от ПС игрока атаки против которого происходит размещение.
Затем игрок защиты размещается в одной из клеток, где он прошел проверку на локализации с учетом весов клеток.
Для схемы размещения “зональная” всё аналогично , только вместо ПС игроков используется параметр, учитывающий расстояния от места последней локализации игрока.