| Автор | Как считать урон? |
Недавно мне друг задал очень интересный вопрос.
В формуле расчета урона базовая часть - урон существа без всяких модификаторов. Берем, скажем, 10 арбалетчиков. Как можно считать этот урон: |
сорри, недописал.
1) урон = ранд(2..8) + ранд(2..8) + ... + ранд(2..8) (10 слагаемых)
2) урон = ранд(20..80)
Очевидно, результаты совершенно различны. |
страусы ненавидят кошек! [Игрок забанен смотрителем Мирий до 2009-05-26 19:41:56 // предупреждение флуд] |
за то, что они закапывают своё ... в песок =) [Игрок забанен смотрителем Мирий до 2009-05-27 19:41:22 // флуд рецидив] |
| [Сообщение удалено смотрителем Мирий // ] |
для Страус:
в первом случае по сути написано тоже что и во втором) от 20 до 80 ) |
| [Сообщение удалено смотрителем Einwill // Дезинформация] |
для -Демон-:
для торопыжка:
Результаты разные. Вероятность в первом случае распределяется весьма неравномерно(чем ближе к центру, тем более вероятно. Никогда вам не говорили, что если кинуть два кубика и просуммировать числа на них, то наиболее вероятен исход 7, а наименее вероятные исходы - 2 и 12?), а во втором совсем ра |
для Страус:
скажи мне ты будешь писать громоздкую формулу если можно сделать простым умножением?? а когда охота и пару тыщ арабов в стэке оно каждого просчитывает даа?)) а в охоте 10тыщ человек)) игра бы висла от таких просчетов) |
| скорее 80 урон будет, если взять в расчёт атаку перса, кторая даст преимущества |
Результаты разные. Вероятность в первом случае распределяется весьма неравномерно(чем ближе к центру, тем более вероятно. Никогда вам не говорили, что если кинуть два кубика и просуммировать числа на них, то наиболее вероятен исход 7, а наименее вероятные исходы - 2 и 12?), а во втором совсем ра
твои две формулы обсолютно идентичны а когда кидают кубики наиболее вероятен исход 7 потому что комбинаций дающих сумму 7 больше чем дающих другую сумму |
для -Демон-:
Я понимаю этот аргумент. но могу противопоставить то, что правило 1) много реалистичней. Во времени работы это мало отличается, операция взятия случайного числа(равно как и суммирования) времени не кушает много. Основное время расходуется далеко не на расчет базового урона.
И мне нужен заверенный ответ от того, кто точно знает. Аргументы я и сам знаю, благо, не дурак. |
для xriorrawx:
Ты не поверишь, но тут комбинаций с суммой 50 будет сильно больше, чем комбинаций с суммой 20. Тот же принцип.
для ExpertMag:
Я говорю про расчет базовой составляющей урона. Ты еще крафт и антиумелку приплети:) |
для Страус:
Ты сказал без всяких модификаторов, про атаку речи не было:) |
операция взятия случайного числа(равно как и суммирования) времени не кушает много
Ох не скажите! Это будет по сути цикл(до 20 000 итераций), а циклы громоздки и долгие. |
для ExpertMag:
А почему тогда вдруг я не воюю против латников с защитой 50?:) В общем, ты понял, не придирайся к словам. |
для Страус:
хм.......... а ты прав походу действительно интересно а по какой формуле щитается)) |
для maxmusk:
Поводи мышкой по экрану. Туда-обратно. Очень скоро ты нагоняешь столько операций, что тебе и не снилось. А там каждая операция ест много больше сложения и взятия случайного числа. |
|Начало цитаты|
если кинуть два кубика и просуммировать числа на них, то наиболее вероятен исход 7, а наименее вероятные исходы - 2 и 12
|Конец цитаты|
Бред.. |
вот стандартная формула:
Если «Нападение» (А) атакующего отряда больше «Защиты» (D) обороняющегося отряда, то
Урон = Размер_отряда * random(мин_урон, макс_урон) * [ 1 + 0,05*(A-D) ] * [ 1 - Умение_защ*3/100 ].
В противном случае, если «Нападение» (А) атакующего отряда меньше «Защиты» (D) обороняющегося отряда, то:
Урон = Размер_отряда * random(мин_урон, макс_урон) * [ 1 - Умение_защ*3/100 ] / [ 1 + 0,05*(D-A) ].
где:
Размер_отряда - количество существ в атакующем отряде;
random(мин_урон, макс_урон) - случайное число из диапазона, определяемого параметром «Урон» существа;
Умение_защ - умение героя обороняющегося отряда той фракции, к которой относится атакующий отряд.
исключая все модификаторы, мы получим, что формула будет: Урон = Размер_отряда * random(мин_урон, макс_урон). то есть фактически, сначала вычислится случайное число из заданного диапазона, а затем умножится на кол-во существ в стеке |