Sistema Homebrew precisa de ajuda com probabilidade em qualquer dado

2

Eu não sou muito de um programador. Embora eu tenha descoberto como fazer coisas básicas com anydice , estou tendo problemas para descobrir a menor probabilidade de sucessos necessários para um número de dificuldade de 2-10 para 1 a 15 dados usando D10s.

Os princípios básicos do sistema são:

  • Ele usa um sistema de pool de dados D10
  • Sua verificação de sucesso é baseada na pontuação do seu atributo
  • Sua habilidade determina o número de dados que você pode rolar
  • Se um 10 for lançado, conta como 2 sucessos.

Eu preciso de um código que determine o menor número de sucessos necessários em qualquer dificuldade de 2-10 usando dados entre 1d10 e 15d10. (Toda vez que um 10 for lançado, contará como 2 sucessos).

Eu vi o código abaixo para o World of Darkness. Quase funciona para o que eu quero, mas em vez de explodir dados em uma pontuação D10 de 10, eu preciso que o 10 conte como 2 sucessos. Se alguém puder me ajudar a modificar o código para alcançar essa saída, seria ótimo.

function: nwod R:n again N:n {
  if N >= R { result: 1 + [nwod R again d10] }
  result: N >= 8
}

NWOD: [nwod 10 again d10]

loop N over {1..10} {
  output [lowest of 10 and NdNWOD] named "[N]d"
}
    
por Shane Vinje 24.08.2016 / 09:55

2 respostas

Seguindo o exemplo, eu fiz o seu Anydice para todas as habilidades possíveis e um atributo fixo de 8. No caso de você querer mudar o atributo apenas altera o 8 no código para qualquer valor que deva ser.

function: successes in S:s {
result: (S >= 8) + (S = 10)
}

loop N over {1..10} {
output [successes in Nd10] named "[N]d"
}
    
24.08.2016 / 12:41

A maneira eficiente de lidar com essas coisas no AnyDice é definir um dado personalizado que forneça diretamente o número de sucessos de cada dado laminado. Por exemplo, para um número de dificuldade alvo de 8 ou acima, você pode usar Nd{0,0,0,0,0,0,0,1,1,2} (ou, mais compactamente, Nd{0:7, 1:2, 2} ) para obter o número de sucessos de rolando N d10 vs 8 .

O d{0,0,0,0,0,0,0,1,1,2} é simplesmente um d10 customizado com seus lados remarcados, de forma que os lados 1 a 7 serão contados como 0, os lados 8 e 9 contarão como 1 e o lado 10 contará como 2.

Com um pouco de matemática, você pode facilmente definir esses dados personalizados para qualquer alvo de dificuldade. Especificamente, para um valor alvo 1 ≤ T ≤ 10, existem T −1 maneiras de rolar sob T em um d10, 10 − T maneiras de rolar entre T e 9, inclusive, e, é claro, uma maneira de lançar um 10 perfeito. Assim, o dado personalizado que dá o número de sucessos contra o alvo T será d{0:(T-1), 1:(10-T), 2} .

Aqui está um programa AnyDice que representa o número de sucessos para qualquer número-alvo 1 <<> < 10 e qualquer tamanho de pool de dados 1 ≤ N ≤ 15:

loop T over {1..10} {
  loop N over {1..15} {
    output Nd{0:(T-1), 1:(10-T), 2} named "[N]d10 vs. [T], double success on 10"
  }
}
    
17.12.2016 / 21:43

Tags