Migel
#16
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Kelos
Думаю, к вещественным числам перешли
Скорее, "вернулись", если я правильно понял что вы обсуждаете. В древнейших ЯВУ типа Фортрана и Бэйсика ГПСЧ изначально выдавал вещественное число в диапазоне [0..1).

Получается, в современных ЯВУ стандартный ГПСЧ машинно-зависим?
Migel
#17
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
А что касается случайного выбора способности из списка, я бы сделал так:

1. Суммируем веса всех способностей, получаем N
2. X=RDN()*N
3. С начала списка способностей
4. X=X-(вес следующей по списку способности). Если X>0, продвигаемся по списку и goto 4, иначе применяем следующую по списку способность и завершаем процедуру.
Hask
#18
без гильдии
могущество: 2897

орк Каргрел
109 уровня
Kelos
Hask
Броски кубиков - это базовый принцип, на основе которого можно показать, как работают случайные числа. Вот например. Вы написали "случайное число" от 0 до инициативы (базовая = 1). Генератор "случайных" чисел вещественные числа не генерирует, для этого используется программный костыль.
В обсуждаемой теме разве важно, как работают случайные числа? Тем более когда известно, что в игре базовая инициатива равна единице и поэтому бросками целочисленных кубиков её работу смоделировать проблематично без дополнительных костылей.

Под "1" имелось ввиду "100%", соответственно, модификаторы "Медленный" и "Быстрый" будут давать модификатор 0,9 или 90% от базового и 1,1 или 110% от базового значения параметра. Тиелендил видимо имел ввиду именно коэффициент, который учитывает все модификаторы и на который потом дополнительно умножается значение параметра.
http://the-tale.org/forum/threads/5#m90
По-моему, описано однозначно без всяких "имел ввиду". В целом ваша идея про изменение верхней планки броска при модификаторах на инициативу соответствует заявленной механике, если с тех пор она не менялась, однако максимальный Быстрый даёт +12,5%, поэтому оперировать вещественными числами в данном случае всё равно проще.

Касательно способностей - либо Вы не так поняли, либо Тиендил не так объяснил. Если бы там были реализованы приоритеты, то в бою либо всегда срабатывала только одна способность из всех (у которой приоритет выше)
Повторюсь:
По способностям: каждая из них (включая базовый удар) имеет приоритет, вероятность срабатывания способности определяется весом её приоритета в общей сумме.
http://the-tale.org/forum/threads/1748#m25299
Вы же на основе слова "приоритет" предположили какую-то другую свою механику, и её же опровергли.
Алгоритм выбора способности скорее всего близок к описанному выше Мигелем.
Kelos
#19
[-☮-] Боец
могущество: 2155
игрок забанен
орк Волосатый Глаз
96 уровня
Migel

Согласно Вашей схеме
А что касается случайного выбора способности из списка, я бы сделал так:

1. Суммируем веса всех способностей, получаем N
2. X=RDN()*N
3. С начала списка способностей
4. X=X-(вес следующей по списку способности). Если X>0, продвигаемся по списку и goto 4, иначе применяем следующую по списку способность и завершаем процедуру.

Допустим, что:
1) есть приоритеты : 3,4,7, то есть, N = 14
2) Х = RDN()*N . Пусть RDN() = 0,73, тогда Х = 10,22
3) начинаем с трех
4) Х = Х - 4 = 6,22, Х > 0, переходим к 4 и повторяем
5) Х = Х - 7, Х < 0, срабатывает способность с приоритетом 7
6) RDN() = 0,32, тогда Х = 4,48
7) начинаем с трех
8) Х = Х - 4 = 0,48, Х > 0, переходим к 4 и повторяем
9) Х = Х - 7, Х < 0, срабатывает способность с приоритетом 7

Иными словами, более чем в 70% случаев, по Вашей схеме, должна сработать способность с приоритетом 7. Если верить заявленной механике, то
Повторюсь:
По способностям: каждая из них (включая базовый удар) имеет приоритет, вероятность срабатывания способности определяется весом её приоритета в общей сумме.
Вес 7 в ряде 3,4,7 - 50%. Что-то не сходится. Но в целом можно принять за основу.

Если реализовано так, как говорит Тиендил, рискну предположить наличие приоритета дополнительно для каждого уровня способности.

Ребят! Ну не оперируют генераторы вещественными числами, это программный костыль! Происходит генерация натурального числа, потом, с помощью каких-то манипуляций превращается в вещественное в заданном диапазоне. Ну невыгодно и долго манипулировать вещественными числами, учитывая
особенности их представления в ЭВМ



Сообщение изменено
naklikal
#20
без гильдии
могущество: 3118

эльф Зуботочец
55 уровня
Kelos
У моего огнешар 5 и укус 1. Укус за бой используется значительно чаще, чем шар, который неимоверно редко проскакивает. Неразвитый навык, из-за общего шанса на проскок способности, выходит чаще, чем развитый до упора.
Грустный Ворон
#21
[LjUA] Магистр
могущество: 47938
модератор
эльф Наэр Крабан
144 уровня
naklikal
у шара самого по себе шанс срабатывания с уровнем не растет. не помню сколько у укуса на первом, но у него растет и на пятом уровне 16-17% по скрипту standy.
так что не совсем правильно сравнивать эти два перка)



Сообщение изменено
naklikal
#22
без гильдии
могущество: 3118

эльф Зуботочец
55 уровня
Грустный Ворон
Эх, жаль на андроид скрипт не впихнуть(
Migel
#23
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Kelos
3) начинаем с трех
4) Х = Х - 4
Если Вы "начинаете с трёх", то почему сразу вычитаете четыре?

Ребят! Ну не оперируют генераторы вещественными числами, это программный костыль! Происходит генерация натурального числа, потом, с помощью каких-то манипуляций превращается в вещественное в заданном диапазоне.
Ваше мнение понятно, но оно предполагает заточку под эффективность вычислений на определённой платформе. Хотя бы с точностью до "двоичная вычислительная машина". Действительно, любой набор нулей и единиц является в первую очередь натуральным числом, а потом уже преобразуется для представления в любой требуемый вид. Но машинно-независимый ЯВУ не обязан быть эффективным на двоичной платформе и, соответственно, не привязан к натуральным числам, а может использовать операции с вещественными или даже комплексными числами, как базовый метод расчётов.



Сообщение изменено
Monsieur Mouse
#24
[ХИСТ] Рекрут
могущество: 642

мужчина Джихайм
79 уровня
Kelos
У Мигеля все верно, а у Вас в рассуждениях ошибка.
6) RDN() = 0,32, тогда Х = 4,48
7) Х = Х - 3 = 1,48, Х > 0, переходим к 4 и повторяем
8) Х = Х - 4 < 0, срабатывает способность с приоритетом 4

В любом случае, вне зависимости от алгоритма, вероятность срабатывания способности имеет смысл геометрической вероятности.
Я когда-то пробовал считать приоритеты, исходя из имеющихся данных. Если считать приоритеты целыми числами, то приоритет обычного удара равен 200.
Migel
#25
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Kelos, я понял, Вы иначе интерпретируете использование списка, чем я.

Когда я нахожусь "в начале списка", то "следующая по списку способность" - первая в списке, а не вторая.
Kelos
#26
[-☮-] Боец
могущество: 2155
игрок забанен
орк Волосатый Глаз
96 уровня
Migel,
Kelos, я понял, Вы иначе интерпретируете использование списка, чем я.
Когда я нахожусь "в начале списка", то "следующая по списку способность" - первая в списке, а не вторая.
понято, принимается.
Но в этом случае я не понимаю, что Вы считаете собственно началом списка

Monsieur Mouse
В любом случае, вне зависимости от алгоритма, вероятность срабатывания способности имеет смысл геометрической вероятности.
Я тоже склоняюсь к тому, что вместо псевдослучайных величин был использован какой-то закон распределения. В любом случае, название "случайный" не имеет право на существование уже хотя-бы потому, что подчиняется определенным законам и формулам )

В общем, механизм теперь понятен, однако вопрос о способе его реализации пока остается открытым
Hamster
#27
без гильдии
могущество: 5163
длань судьбы
гоблин Джеаки
101 уровня
Kelos
В любом случае, название "случайный" не имеет право на существование уже хотя-бы потому, что подчиняется определенным законам и формулам
Поэтому мы и называем его ГПСЧ.
Migel
#28
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Kelos
Но в этом случае я не понимаю, что Вы считаете собственно началом списка
Ну как это, "что"? Карандашную отметку на перфоленте, конечно ;)

Если серьёзно, то условный маркер начала списка. Я привык разделять операции навигации по списку и чтения из него.
Kelos
#29
[-☮-] Боец
могущество: 2155
игрок забанен
орк Волосатый Глаз
96 уровня
Migel
прям машина Тьюринга) Занятная штука, писал как-то алгоритмы для перемножения чисел...
CrazyNiger
#30
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
Kelos
Kelos
Migel
спойлер прям машина Тьюринга) Занятная штука, писал как-то алгоритмы для перемножения чисел...
Перемножение на Тьюренге классика. Но еще приколней. Перевод систем счисления на машине Поста, вот это круто.





Сообщение изменено