Моделирование спорта соответствует в онлайн-игре

Этот сайт имеет сервис конвертера валют бесплатно:

http://www.webservicex.net/WS/WSDetails.aspx?WSID=10

6
задан casperOne 28 May 2012 в 17:14
поделиться

5 ответов

Вот способ, которым я бы это сделал.

Качество атаки / защиты

Сначала давайте определим среднюю силу всей команды:

Team.Strength = SUM(Players.Strength) / 11

Теперь мы хотим разделиться сторону пополам, и вычислить среднее значение для наших защитников и нападающих.]

Defense.Strength = SUM(Defensive_Players.Strength)/Defensive_Players.Count
Offense.Strength = SUM(Offense_Players.Strength)/Offense_Players.Count

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

Команда с высоким средним атакующим будет иметь больше шансов, команда с высокой защитой будет иметь больше шансов на спасение.

Теперь, если у нас есть команды, назовем их A и B.

Команда A имеет средний балл 80, показатель атаки 85 и показатель защиты 60.

Команда B имеет средний балл. из 70, оценка атаки 50 и оценка защиты 80.

Теперь по среднему. У команды А должно быть больше шансов на победу. Но на сколько?

Подсчет очков и сохранение

Давайте выясним, сколько голов должна забивать команда A:

A.Goals = (A.Offensive / B.Defensive) + RAND()
        = (85/80) + 0.8;
        = 1.666

Я предположил, что случайное значение добавляет что-либо от -1 до +1, хотя вы можете это изменить.

Как видим, формула показывает, что команда A должна забить 1,6 гола. мы можем округлить это значение вверх / вниз. Или дайте команде A 1 и посчитайте, разрешена ли другая (случайная вероятность).

Теперь для команды B

B.Goals = (B.Offensive / A.Defensive) + RAND()
        = (50/60) + 0.2;
        = 1.03

Итак, у нас есть оценка 1 и оценка B 1. Но помните, мы хотим взвесить это в A пользу, потому что в целом они лучшая команда.

Итак, каков шанс, что А выиграет?

Chance A Will Win = (A.Average / B.Average)
                  = 80 / 70
                  = 1.14

Итак, мы видим, что шансы на победу А составляют 14% (0,14). Мы можем использовать это значение, чтобы увидеть, есть ли какие-либо изменения в окончательной оценке:

if Rand() <= 0.14 then Final Score  = A 2 - 1 B Otherwise A 1 - 1 B

Если наше случайное число было 0,8, то совпадение считается ничьей.

Подведение итогов и дальнейшие размышления

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

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

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

19
ответ дан 8 December 2019 в 03:27
поделиться

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

[4 4 4]

[7 4 1]

Второй будет считаться более слабым. Это то, что вы хотите? Я думаю, вы бы предпочли сделать что-то вроде:

(Общее количество очков / Общее количество игроков) + (Максимальное количество очков / Общее количество игроков), поэтому в приведенном выше примере это сделало бы вторую команду немного лучше.

Думаю, это зависит от как вы считаете, команды должны быть сбалансированы.

0
ответ дан 8 December 2019 в 03:27
поделиться

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

Лучшим подходом в этом случае было бы просто разделить оценку нападения на защитный счет. Если оба равны, результат будет 1. Если атакующий лучше, чем защищающийся, он будет больше 1, а если защищающийся сильнее, то меньше единицы. С этими числами легко работать.

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

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

3
ответ дан 8 December 2019 в 03:27
поделиться

Самым основным тактическим решением в футболе является выбор расстановки , которая представляет собой набор из трех чисел, который распределяет 10 полевых игроков на защиту, полузащиту и атака, соответственно, например, 4/4/2.

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

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

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

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

4
ответ дан 8 December 2019 в 03:27
поделиться

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

"Your team wins 2-1"

они хотят видеть основные моменты матча:

"Your team wins 2-1:
 - scored at minute 15,
 - other team took control and went for tried for a goal at minute 30, 
   but the shoot was intercepted,
 - we took control again and $PLAYER1 scored a beautiful goal!
... etc

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

3
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: