Генератор случайных чисел как Dice

Хорошо, у меня есть вопрос о генераторе случайных чисел. Однако позвольте мне объяснить, что я знаю, как это работает. Так что будет минимум кода. Мой вопрос в том, что я называю плавающим индексом. Это будет использоваться в качестве генератора игральных костей. Итак, я объясню пример игры, а затем кусок кода.

Мой отец хочет создать игру в стиле 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 16.04.2023 14:03

«Могу ли я использовать это число для автоматического изменения индекса»?

njzk2 16.04.2023 14:09

@bumbread вот что я пытаюсь понять. Это как нажать одну кнопку для игры в кости и все будет рассчитано. Когда я научился создавать генератор случайных чисел на C#, это было, например, (1, 10). Однако, когда у вас есть файтинг, как увеличить индексы на основе статистики, которую вы можете обновить.

Camp Nerd 16.04.2023 14:11

@ njzk2, возможно, это был плохой выбор слова, однако подумайте об индексе (1,7) на одном броске, а на следующем броске он меняет (1,20), все с использованием одного генератора.

Camp Nerd 16.04.2023 14:13

Я не уверен, что вы имеете в виду под индексом? вы имеете в виду границы генератора случайных чисел?

njzk2 16.04.2023 14:54

@njzk2, если у вас два игрока. (Вспомните уличный боец ​​или боксерскую игру) урон от удара будет для одного игрока по шкале 1-20, а для другого 1-10.. если значение шкалы случайного числа составляет только 1-10.. без использования нескольких генераторов как я могу сделать 1-10, изменить на 1-20, шкала основана на статистике игрока. Так что мне нужен игрок один генератор и игрок два генератора... Что, если играет миллион человек. У меня есть генератор с миллионом различных комбинаций. Как бы все это сделать на одном генераторе или нужно несколько генераторов

Camp Nerd 16.04.2023 15:56

Отвечает ли это на ваш вопрос? stackoverflow.com/questions/45685026/…

njzk2 16.04.2023 18:05

Большинство функций random могут принимать различные значения, так почему бы не вызвать, например, nextInt(1, currentMax + 1) для игрока? Вы указываете диапазон, и генератор дает вам случайное значение в этом диапазоне. Если вы всегда указываете currentMax, то при изменении этого значения изменяется и диапазон возможных значений. Нет необходимости сохранять это состояние «максимального значения» в самом генераторе — и это особенно важно, если оно будет общим для большого количества игроков, где вы можете столкнуться с условиями гонки (игрок X устанавливает новое максимальное значение, и перед этим может запросить значение, игрок Y устанавливает другой максимум)

cactustictacs 17.04.2023 21:11
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
8
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не уверен, что понимаю, что вы имеете в виду, но я думаю, что это может быть то, что вам нужно.

data class Player(var attackPower: Int)

fun generateAttackValue(player: Player): Int {
    return (1..player.attackPower).random()
}

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

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

Camp Nerd 18.04.2023 23:04

Так что это не отвечает на ваш вопрос как аксед?

Tenfour04 19.04.2023 02:37

Я думаю, что это так, но я не уверен, пока не запрограммирую это. Прямо сейчас у нас есть все на бумаге, и мы бросаем физический краситель. Шансы отсутствуют, и даже это удача. Итак, мы вводим приложение. Когда я доберусь до части кодирования, если оно ответит на мой вопрос, я отмечу его. На данный момент мы все еще настраиваем его на бумаге, прежде чем перевести в цифровой формат.

Camp Nerd 19.04.2023 20:12

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

Camp Nerd 19.04.2023 20:14

Другие вопросы по теме