Si je vous comprends bien, quelque chose comme ceci devrait le faire :
loop N over {1..10} {
output Nd{0:4, 1, 2} / 2 named "[N]d6, 6=success, 5=half success, round down"
}
Vous ne pouvez pas représenter directement des valeurs non entières dans AnyDice. Mais ce que vous peut est de compter le nombre de demi-succès dans votre rouleau (c'est-à-dire un pour chaque 5, deux pour chaque 6) et divisez ensuite par deux.
La division dans AnyDice arrondit à l'inférieur ( en fait vers zéro ), ce qui semble être ce que vous voulez ici sur la base de vos exemples, il n'y a donc pas besoin d'ajuster cela. Si vous vouliez arrondir à la hausse, vous pourriez ajouter un avant de diviser par deux (ou, plus généralement, ajouter \$n-1\$ avant de diviser par \$n\$ ).
Le code ci-dessus fait no différencier un demi-succès (que vous avez mentionné vouloir traiter comme un "succès avec complications") d'aucun succès du tout. La façon la plus simple d'obtenir la probabilité que cela se produise est peut-être de simplement le calculer séparément :
loop N over {1..10} {
output Nd{0:4, 1, 2} = 1 named "[N]d6, one five, no sixes"
}
Le résultat sera 1 si le nombre de demi-succès obtenus est exactement 1, et 0 sinon. Ce type de " boolean "Le résultat est plus facilement visualisable dans la vue sommaire d'AnyDice (vers laquelle le lien ci-dessus vous conduit), où le graphique "moyen" montre directement les probabilités de lancer un seul demi-succès. Vous pouvez soustraire ces probabilités de demi-succès des probabilités de succès nulles données par le premier script ci-dessus pour obtenir les probabilités réelles de lancer des dés. même pas la moitié d'un succès . (Ou changez simplement le = 1
dans le code ci-dessus pour = 0
pour les sortir directement).
Si vous voulez obtenir à la fois la distribution du nombre de succès complets et la probabilité d'obtenir un seul demi-succès à partir d'un seul script AnyDice, vous allez devoir faire un peu plus de travail - dans ce cas, comme d'habitude, en écrivant une fonction d'aide pour faire correspondre le nombre de demi-succès à la sortie finale.
Mais d'abord, vous devez décider comment pour représenter les différents résultats possibles dans la sortie. Une option assez raisonnable serait d'utiliser -1 pour représenter "même pas la moitié d'un succès", 0 pour représenter "seulement la moitié d'un succès" et des entiers positifs pour représenter un ou plusieurs succès complets (c'est-à-dire 1 = un succès, 2 = deux succès, etc.). En utilisant cette représentation, nous pouvons écrire notre fonction d'aide comme ceci :
function: count HALF_SUCCESSES:n {
if HALF_SUCCESSES = 0 { result: -1 } \ not even half a success \
if HALF_SUCCESSES = 1 { result: 0 } \ "success with complications" \
result: HALF_SUCCESSES / 2 \ otherwise just count whole successes \
}
loop N over {1..10} {
output [count Nd{0:4, 1, 2}] named "[N]d6, -1 = fail, 0 = complications, 1+ = success"
}
L'inconvénient (mineur) de ce schéma d'encodage est que les valeurs de moyenne et d'écart-type calculées automatiquement par AnyDice deviennent plutôt insignifiantes (alors que pour le premier script ci-dessus, elles vous donnent directement le nombre moyen de succès complets et son écart-type) puisque les nombres de sortie ne sont plus linéairement proportionnels au nombre total de succès. Mais vous pouvez toujours observer les graphiques pour voir comment la distribution change lorsque vous augmentez le nombre de dés.