АнглийскийФранцузскийИспанский

Значок OnWorks

dicelab - Интернет в облаке

Запустите dicelab в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда dicelab, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


dicelab - бросайте и исследуйте схемы броска кубиков

СИНТАКСИС


Dicelab [опции] [-ф ]

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


-h, --Помогите, -?
распечатать справочное сообщение

--версия, -v
отображать номер версии

--расч., -c
рассчитать распределение

--рулон, -r
бросьте кости, как указано. Это также будет использоваться, если не требуется никаких других действий.

--евал, -e
перемотайте много раз и суммируйте результаты, чтобы получить статистическое распределение
ценности

--считать, -n
укажите количество повторов для --eval, по умолчанию 10000

--печать-дерево, -p
распечатать дерево синтаксического анализа (для целей отладки)

-f
читать описание схемы из файла, а не из стандартного ввода

ОПИСАНИЕ


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

БЫСТРО Начать игру


Броски одиночных кубиков могут быть выполнены с помощью оператора 'd', за которым следует количество граней на
кубик, который нужно бросить. Например, d6 бросит единственный шестигранный кубик, а d2 подбросит монету.
Выражения могут быть изменены стандартными арифметическими операторами. d10-1 даст значение
от 0 до 9 включительно. Чтобы бросить несколько кубиков одного типа, используйте
оператор повторения '#'. 2 # d6 бросит два шестигранных кубика; это не то же самое, что 2 * d6,
который бросает только один кубик, но умножает результат на два, или 2d6, что вызывает
ошибка синтаксиса. Чтобы получить сумму двух шестигранных игральных костей, выполните sum (2 # d6).

ПОЛНЫЙ СИНТАКСИС


знак равно
-? [0-9] +
знак равно
[A-Za-z] +
знак равно

|
| ( )
| -
| +
| -
| *
| /
| %
| ^
| .
| d
| сумма
| толкать
| считать
знак равно
#
| ( )
| ..
| ,
| пермь
| Сортировать
| rev
| (падение | сохранить)? низкий
| (падение | сохранить)? высокий
| (падение | сохранить)? первый
| (падение | сохранить)? последний
| (падение | сохранить)? ==
| (падение | сохранить)? знак равно
| (падение | сохранить)? <
| (падение | сохранить)? >
| (падение | сохранить)? <=
| (падение | сохранить)? > =
| если тогда еще
| позволять знак равно в
| в то время как знак равно делать
| для каждого в делать
знак равно


знак равно

| ;

Комментарии могут быть вставлены с помощью двойной косой черты (//), как в C.

СЕМАНТИКА


+ - * / ^

Это знакомые бинарные арифметические операторы для сложения, вычитания и
умножение, деление и возведение в степень. Деление округляется до нуля.
Примеры: 5 + 7, d6-1, 2 ^ 10

-

Это унарный минус-оператор. Примеры: -1

%

Это оператор модуля. x% y дает остаток от x, деленный на y.
Примеры: 11% 2, d6% 3

.

Это оператор скалярной конкатенации. Икс . y дает xy, конкатенация x
и у. Примеры: -10.9, d6.d6

d

Это оператор броска кубика. dn дает значение одного рулона n-стороннего
умереть. Примеры: d6, 2 # d6

сумма толчок

Это операторы расширенной суммы и произведения. Если e - выражение, суммируйте e и
prod e дает сумму членов е и произведение членов е,
соответственно. Примеры: sum (1..100), prod (3 # d6)

считать

Это оператор размера списка. Если e - выражение, то count e дает
количество членов e. Примеры: count (1,2,3), count (== 6 10 # d6)

#

Это оператор повторения списка. Если n - неотрицательный скаляр, а e -
выражение, тогда n # e - это список, содержащий результаты n оценок e.
Примеры: 10 # 8, 3 # d10.

..

Это оператор диапазона. Если x и y - скаляры, то x..y - список, состоящий из
отрезка [x, y]. Если x> y, то результирующий список пуст. Примеры: 1..10,
4..d10

,

Это оператор конкатенации списков. v, u дает список, состоящий из всех
члены v, за которыми следуют все члены u. Примеры: 1,2 4, (3 # d6)

sort

Это оператор сортировки списка. sort e сортирует список e в порядке возрастания.
Примеры: sort (10 # d6)

химическая завивка

Это оператор перестановки списка. sort e приводит к случайной перестановке
список e. Используйте химическую завивку, чтобы перемешать список. Примеры: пермь (1..52)

оборот

Это оператор разворота списка. rev e приводит к списку с теми же членами
как список e, но в обратном порядке. Примеры: rev (1..10), rev sort (10 # d8)

низкокачественными высокая

Эти операторы действуют как фильтры, находя наименьшие и наибольшие значения в списках.
Если n - неотрицательный скаляр, а e - выражение, то low ne дает n наименьшее
члены e, а high ne дает n наибольших членов e. Примеры: high 3 5 # d6

первый последний

Эти операторы действуют как фильтры, находя начальный и конечный сегменты списков. Если п
неотрицательный скаляр и e выражение, тогда сначала ne дает первое n
члены e, а последний ne дает последние n членов e. Примеры: первые 3
(1..10)

== != < > <= >=

Эти операторы действуют как фильтры, находя значения в списках, которые соответствуют заданным
условия. Если x - скаляр, а e - выражение, то == xe дает список
члены e равны x; ! = xe дает список членов e, не равных x; <х
e дает список членов e меньше x; > xe дает список членов e
больше чем x; <= xe дает список членов e, меньших или равных x; > = х
e дает список членов e, больших или равных x. Примеры:> = 3 5 # d6

падение держать

Эти операторы изменяют фильтры в списках. Если fop - это операция фильтрации на
выражение e, затем keep fop e дает тот же результат, что и fop e, и drop fop e оценивает
чтобы меньше сохранять фоп e. Другими словами, drop отменяет условия фильтрации и сохраняет
подтверждает их. keep никогда не требуется и существует только для симметрии. Примеры:
сумма (drop low 1 4 # d6)

позволять

Это оператор присваивания и замены переменных. Если x - переменная и e
и f - выражения, тогда пусть x = e в f дает список, который получается из
вычисление f со значением e, заменяющим каждое вхождение x в f.
Оценка e выполняется до замены. Примеры: пусть x = d6 in x * x

Еогеасп

Это оператор ограниченной итерации. Если x - переменная, а e и f -
выражений, то foreach x в e do f дает список, который получается в результате присвоения
для x каждого из членов e и оценки f. Примеры: foreach x in c do x + 1

в то время как

Это оператор неограниченной итерации. Если x - переменная, а e и f -
выражений, то пока x = e do f - это список v0, v1, ..., vn, где v0 - результат
вычисления e и vi + 1 является результатом присвоения vi переменной x и вычисления f,
остановка на первом пустом vi. Примеры: while x = d6 do ((count <6 x) # d6)

if

Это оператор ветвления. Если e, f и g - выражения, то если e, то f
иначе g дает f, если e непусто, и g в противном случае. Примеры: если count (> 4 2 # d6), то
1 еще 0

ПРИМЕРЫ


Подсчитайте количество кубиков больше 7:

count> 7 5 # d10

Подсчитайте количество кубиков больше 7 минус количество кубиков, равное 1:

пусть c = 5 # d10 in (count> 7 c) - (count == 1 c)

Подсчитайте количество бросков, пока не выпадет 6:

count (в то время как x = d6 do ((count <6 x) # d6))

Подсчитайте количество бросков, пока не выпадет 6, более эффективно:

count (в то время как x = (d6 / 6) do ((count <1 x) # (d6 / 6)))

Атрибуты броска для нового персонажа D&D:

6 # сумма (drop low 1 4 # d6)

Сделайте бросок по таблице для проверки морального духа 11..66 в серии The Gamers 'Civil War Brigade Series:

d6.d6

Найдите медиану 3 d20s:

высокий 1 низкий 2 3 # d20

3d6 с рероллами на 6s:

сумма (в то время как x = 3 # d6 do ((count == 6 x) # d6))

Бросьте 7 d10 и найдите наибольшую сумму одинаковых кубиков:

let x = 7 # d10 in high 1 (foreach y in 1..10 do sum (== yx))

Последовательность Фибоначчи определяется как Fn = Fn-1 + Fn-2, где F1 = F2 = 1. Вычислить
первые двадцать чисел Фибоначчи:

пусть n = 20 в
пусть f = (1,1) в
foreach я в 1..n do
пусть f = (f, sum (high 2 f)) в
если == ni, то f else ()

У риска есть битвы, в которых атакующий бросает 3d6, а защитник бросает 2d6. Самый высокий
кубик атакующего совпадает с кубиком самого высокого защитника и кубиком атакующего второго по величине
второй по величине защитник умирает. В обоих матчах выигрывает самый высокий, при ничьей
защитник. Количество побед атакующего:

пусть a = 3 # d6 в
пусть b = 2 # d6 в
count ((<(high 1 a) high 1 b),
(<(высокий 1 низкий 2 a) низкий 1 b))

Бросок кубика Рассказчика с целевым номером 8 и провалами, обозначенными как -1:

пусть c = 5 # d10 в
let succs = count> 7 c in
пусть единицы = count == 1 c в
если> 0 succs, то высокий 1 (0, succs-ones)
иначе если> 0 единиц, то -1 иначе 0

Бой в Silent Death довольно сложен. Бросаются три кубика. Если их сумма больше
цель, бросок - попадание. Для расчета урона сортируются одинаковые кубики. Если все трое
равны, все суммируются, чтобы получить урон. Если наименьшие два равны, но третий -
выше, высокий кубик - урон. Если два высших равны, а третий ниже,
два высоких кубика суммируются, чтобы получить урон. Если все три кубика разные,
средний кубик - урон. В этом примере предполагается, что на кубиках лежат два кубика d8 и один кубик d10.
целевое число 15:

пусть x = 2 # d8, d10 в
(count> 15 сумма x) #
let a = low 1 x in // низкий кубик
let b = high 1 low 2 x in // средний кубик
let c = high 1 x in // высокий кубик
if == a == bc then a + b + c // все равно
иначе если == а
else if> a == cb then b + c // два старших равны else
b // все разные

CREDITS


Dicelab основан на отличной работе "Roll" Торбена Могенсена.
(http://www.diku.dk/~torbenm/Dice.zip). Без его работ и комментариев это вряд ли
когда-либо случалось.

Текущая языковая спецификация и расширения исходного языка являются производными
из работы Джоэля Укельмана (http://dice.nomic.net/bones.html), большинство из
у него тоже украдена документация.

Этот код был написан Робертом Лемменом.[электронная почта защищена]> кто был бы рад услышать
ваши вопросы и замечания.

Используйте dicelab онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    SuiteCRM
    SuiteCRM
    SuiteCRM — отмеченный наградами клиент
    Управление взаимоотношениями (CRM)
    приложение, представленное вам авторами
    и сопровождающие, SalesAgility. Это
    самый лучший в мире...
    Загрузить SuiteCRM
  • 2
    Poweradmin
    Poweradmin
    Poweradmin — это веб-сервер DNS.
    инструмент администрирования для сервера PowerDNS.
    Интерфейс имеет полную поддержку большинства
    возможностей PowerDNS. Он имеет полный
    служба поддержки...
    Скачать Poweradmin
  • 3
    Джин Веб Фреймворк
    Джин Веб Фреймворк
    Джин - невероятно быстрый веб-фреймворк
    написано на Голанге, может выполнять до
    В 40 раз быстрее благодаря
    мартини-подобный API и кастомная версия
    httprout ...
    Скачать Gin Web Framework
  • 4
    ЦЕРЕУС ЛИНУКС
    ЦЕРЕУС ЛИНУКС
    CEREUS LINUX базируется на MX LINUX con
    различные энторнос де эскриториос. Это
    приложение, которое также можно получить
    к
    https://sourceforge.net/projects/cereu...
    Скачать CEREUS LINUX
  • 5
    Тренер по задачам
    Тренер по задачам
    Task Coach - Ваше дружеское задание
    управляющий делами. Task Coach — это бесплатная открытая
    источник todo менеджер. Он вырос из
    разочарование по поводу других программ не
    работа с композитом...
    Скачать тренер задач
  • 6
    Ядро СУБД HyperSQL (HSQLDB)
    Ядро СУБД HyperSQL (HSQLDB)
    HSQLDB — это механизм реляционной базы данных.
    написан на Java, с драйвером JDBC,
    соответствующий ANSI SQL:2016. Маленький,
    быстрый, многопоточный движок и сервер
    с памятью...
    Загрузите ядро ​​базы данных HyperSQL (HSQLDB)
  • Больше »

Команды Linux

Ad