Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2015, 16:47
Новичок на форуме
Отправить личное сообщение для Дуняша Посмотреть профиль Найти все сообщения от Дуняша
 
Регистрация: 28.09.2015
Сообщений: 2

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

У нас есть несколько игральных костей. Здесь картинки для наглядности: https://www.wizards.com/dnd/dice/dice.htm
4-гранная
6-гранная
8-гранная
10-гранная
12-гранная
20-гранная

Чтобы игрок, например, бросил две шестигранные кости и добавил к результату 3, это записывается следующим образом: 2D6+3. В итоге полученное значение будет в диапазоне 5-15.

Так вот нужен скрипт, выполняющий обратную процедуру. Т.е. игрок вводит минимальное значение диапазона (5) и максимальное значение диапазона (15), а получить он должен 2D6+3 или все комбинации с разными костями, которые могли бы дать этот же диапазон.

Дополнительная информация:
* Из арифметических операций в таких формулах встречаются только сложение (D8+1) и вычитания (D20-4). Умножение, деление и прочие более сложные арифметические операции там не встречаются.
* Максимальное значение диапазона никогда не отрицательное (не знаю, важно это или нет).
* Достаточно, чтобы в результате фигурировала лишь одна кость. Т.е. 1D8 + 2D6 + 3 - можно предложить в качестве результата, но необязательно.
Ответить с цитированием