Como posso calcular a distribuição de 3d6, manter e relançar quaisquer 1s e 2s, uma vez? [duplicado]

Aug 19 2020

A maneira que meu mestre quer tentar é rolar 3d6 e rolar novamente qualquer 1 ou 2 uma vez. Se você tirar 2 e a nova jogada acabar sendo 1, você terá que pegar o 1.

Respostas

4 IlmariKaronen Aug 19 2020 at 04:29

Você pode fazer assim , usando a função auxiliar desta resposta :

function: ROLL:n replace FILTER:s with REROLL:d {
  if ROLL = FILTER { result: REROLL }
  result: ROLL
}

X: [d6 replace {1,2} with d6]
output 3dX named "3d6, reroll 1 and 2 once" 

Observe que primeiro estou definindo um dado personalizado Xque representa um único d6 com 1s e 2s relançados uma vez e, em seguida, rolando três desses dados personalizados. Especialmente com grandes pools de dados, isso é significativamente mais eficiente do que rolar o pool inteiro de uma vez e alimentar os resultados em uma função personalizada como sequências, uma vez que, nesse caso, AnyDice não é inteligente o suficiente para perceber que os dados individuais no pool não podem afetar entre si.

3 Daveman Aug 19 2020 at 04:22

https://anydice.com/program/1d573

Isso deve fazer o que você quer com um único d6, é um ótimo script de luta com armas modificado . Eu atualizei o programa para seguir melhor as práticas comuns.

function: reroll R:n under N:n {
   if R < N { result: d6 } else {result: R}
}
output 3d[reroll 1d6 under 3]
3 DaleM Aug 19 2020 at 05:00

Você só precisa de dados de 36 lados

output 3d{1:2,2:2,{3..6}:8}

Vejo https://rpg.stackexchange.com/a/104780/6203