AnyDice Função: 3d6, menor dado tem piso de 3

7

Eu brinquei um pouco com o código, mas tendo alguns problemas para descobrir como escrever uma função que rola 3d6 e se o menor resultado do dado for menor que 3, então ele muda o dado para um 3 depois adiciona os resultados.

    
por Khyodee 18.08.2018 / 18:20

1 resposta

Use um dado personalizado

Se você quer que todos os dados tenham um mínimo de 3, isso é muito fácil de fazer - você só precisa especificar um dado personalizado em vez do d6:

output 3d{3,3,3,4,5,6}

Como 1 ou 2 seria melhorado para 3, é o mesmo que rolar um d6 que na verdade tem três 3s e depois o normal 4, 5, 6.

Inspeção de sequência

Se você realmente quer apenas melhorar um único dado da piscina, isso é um pouco mais complicado, mas você pode fazer isso com uma função:

function: roll DICE:s {
  result: 1@DICE + 2@DICE + [highest of 3@DICE and 3]
}

output [roll 3d6]

Ao converter os dados rolados em uma sequência (com: s), podemos aproveitar a inspeção e a ordenação de sequência. Por padrão, Anydice ordena um lançamento de dados para uma sequência em ordem decrescente, então sabemos que o último dado na sequência será o menor. Podemos apenas adicionar os dois primeiros dados e, em seguida, adicionar o maior valor do terceiro dado ou o valor 3, usando a função "Anydice" de "mais alto de X e Y".

Aqui está um programa que compara o rolamento 3d6 claramente contra esses dois métodos:

function: roll DICE:s {
  result: 1@DICE + 2@DICE + [highest of 3@DICE and 3]
}

output 3d6 named "3d6 normal"
output 3d{3,3,3,4,5,6} named "3d6 min 3 all dice"
output [roll 3d6] named "3d6 min 3 one die"
    
18.08.2018 / 19:30

Tags