![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Всем привет. Столкнулся с такой проблемой, хотя скорее это будет вопрос. Мы имеем например целое число 500 , другое значение зависимое от этого числа будет равно 30%. То есть максимальное значение 500 и максимальный процент другого значения 30. Каким образом, мне в коде выразить процентный шанс, например активации какого-либо события. Через mathrandom? Подскажите какие вообще варианты могут быть
|
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Есть к примеру переменные:
Теперь, к примеру, есть объект. Не буду мудрить, пусть это будет человек. Он имеет такие характеристики, как agility и dodge. В этого человека летит пуля, попадание её в человека, зависит от значения переменной dodge. Как мне просчитать вероятность попадания пули, исходя из процентного соотношения? 70% того, что пуля попадет в человека и 30%, что нет. То есть запускается ф-ция, там исходя из значения dodge генерируется вероятность шанса попадания пули в человека. Вот каким образом, реализовать эту самую генерацию? И что если например dodge не обязательно будет равен 30%, он может быть равен и 27,5 и 8,3 к примеру. Исходя из этих значения, будет просчитываться вероятность) |
|
|||||
|
Я, конечно, может, чего не понял, но
Math.random() - 0.3(процентное соотношение) . Если Math.random() -(минус) 0.3 меньше или равно нулю - то рандом попал в промежуток тридцати процентов. Итого var agility:int = 500; var dodge:Number = 0.3; var result:Boolean = Math.random() - dodge <= 0; Кхм... Взглянул на получившееся неравенство и... Подумал об упрощении. var agility:int = 500; var dodge:Number = 0.3; // Прибавим dodge к обеим частям неравенства, и в итоге получим var result:Boolean = Math.random() <= dodge; Думаю, если вам понадобится перевести проценты в десятичную дробь, вы сможете сделать это без моей помощи))
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 07.01.2015 в 01:38. |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
|
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
А если процент, будет составлять 1,8? Как тогда? так?
|
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Godwarlock, да
|
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Спасибо всем за ответы)
|
|
|||||
|
Сдаётся мне, он хотел сделать так, чтобы dodge 30% были пропорциональны 500 в agility.
В опущенном виде Но всё-таки, я предполагаю, что этот код будет выполняться с определённым интервалом, поэтому пусть результат исчисления хранится в переменной dodge, заранее просчитанный. var agility:int = 500; var dodge:Number = agility/500 * 0.3; if(Math.random() <= dodge){ // промахнулся } else { // попал } ![]()
__________________
There is no thing in this world that is not simple. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|