Хорошо, у меня есть вопрос о генераторе случайных чисел. Однако позвольте мне объяснить, что я знаю, как это работает. Так что будет минимум кода. Мой вопрос в том, что я называю плавающим индексом. Это будет использоваться в качестве генератора игральных костей. Итак, я объясню пример игры, а затем кусок кода.
Мой отец хочет создать игру в стиле DnD. С атакой и защитой. Генератор случайных чисел — игральные кости. Однако у каждого игрока будет бонус +Атака и так далее. Что-то вроде Риска.
У меня вопрос, когда индекс скажем (1,6) с бонусом атаки (3). Генератор случайных чисел (1,6). Могу ли я изменить этот индекс по урону от атаки игроков в броске.
Так, например, у одного игрока может быть (1,6), а у другого игрока может быть (1,20). По мере повышения уровня эти цифры будут меняться.
Итак, я могу использовать переменную int в генераторе случайных чисел следующим образом.
Val X = 0
Val y = playerAttack.tostring
....... (X , y)
Таким образом, в основном, если генератор случайных чисел (1,6), то второй игрок с (1,20) выбросит из индекса.
Итак, мой вопрос: могу ли я использовать это число для автоматического изменения индекса на основе статистики игрока.
Вспомните игру Dungeon and Dragons. Или мне придется сделать генератор как (1, 100) и использовать операторы else, чтобы ограничить число в индексе.
Мне нужно разъяснение, потому что я предполагаю, что мне понадобится несколько генераторов случайных чисел с разными индексами.
Любая помощь будет принята с благодарностью.
«Могу ли я использовать это число для автоматического изменения индекса»?
@bumbread вот что я пытаюсь понять. Это как нажать одну кнопку для игры в кости и все будет рассчитано. Когда я научился создавать генератор случайных чисел на C#, это было, например, (1, 10). Однако, когда у вас есть файтинг, как увеличить индексы на основе статистики, которую вы можете обновить.
@ njzk2, возможно, это был плохой выбор слова, однако подумайте об индексе (1,7) на одном броске, а на следующем броске он меняет (1,20), все с использованием одного генератора.
Я не уверен, что вы имеете в виду под индексом? вы имеете в виду границы генератора случайных чисел?
@njzk2, если у вас два игрока. (Вспомните уличный боец или боксерскую игру) урон от удара будет для одного игрока по шкале 1-20, а для другого 1-10.. если значение шкалы случайного числа составляет только 1-10.. без использования нескольких генераторов как я могу сделать 1-10, изменить на 1-20, шкала основана на статистике игрока. Так что мне нужен игрок один генератор и игрок два генератора... Что, если играет миллион человек. У меня есть генератор с миллионом различных комбинаций. Как бы все это сделать на одном генераторе или нужно несколько генераторов
Отвечает ли это на ваш вопрос? stackoverflow.com/questions/45685026/…
Большинство функций random
могут принимать различные значения, так почему бы не вызвать, например, nextInt(1, currentMax + 1)
для игрока? Вы указываете диапазон, и генератор дает вам случайное значение в этом диапазоне. Если вы всегда указываете currentMax
, то при изменении этого значения изменяется и диапазон возможных значений. Нет необходимости сохранять это состояние «максимального значения» в самом генераторе — и это особенно важно, если оно будет общим для большого количества игроков, где вы можете столкнуться с условиями гонки (игрок X устанавливает новое максимальное значение, и перед этим может запросить значение, игрок Y устанавливает другой максимум)
Не уверен, что понимаю, что вы имеете в виду, но я думаю, что это может быть то, что вам нужно.
data class Player(var attackPower: Int)
fun generateAttackValue(player: Player): Int {
return (1..player.attackPower).random()
}
Вы можете использовать эту же функцию генерации чисел для любого игрока, независимо от его силы атаки.
это то, о чем я думал изначально, однако я работаю над несколькими концепциями с кодом в предварительной части приложения ... также концепция сохраняет изменения, поэтому я просто пытаюсь получить формальную идею кодирования, а затем начать тестирование концепции.
Так что это не отвечает на ваш вопрос как аксед?
Я думаю, что это так, но я не уверен, пока не запрограммирую это. Прямо сейчас у нас есть все на бумаге, и мы бросаем физический краситель. Шансы отсутствуют, и даже это удача. Итак, мы вводим приложение. Когда я доберусь до части кодирования, если оно ответит на мой вопрос, я отмечу его. На данный момент мы все еще настраиваем его на бумаге, прежде чем перевести в цифровой формат.
у вас также есть то, что вы опубликовали, плюс у вас есть блоки, потребление батареи, истощение брони и так далее. Итак, мы опускаем базовую механику... так что я предполагаю, что у меня будет около 5 разных генераторов случайных чисел.
«Генератор случайных чисел — это игральные кости». Я думаю, у вас может быть проблема с тем, как вы моделируете свою проблему. Вы можете использовать один генератор случайных чисел для всей игры и просто предоставлять ему разные индексы по ходу игры.